题目描述:
难度:Easy
相关话题:数学
、二分查找
实现 int sqrt(int x)
函数。
计算并返回x 的平方根,其中x 是非负整数。
由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。
示例 1:
输入: 4
输出: 2
示例 2:
输入: 8
输出: 2
说明: 8 的平方根是 2.82842...,
由于返回类型是整数,小数部分将被舍去。
思路:
二分法
,初始最小值l
为0
,初始最大值h
为Math.floor(x/2)
。
/**
* @来源: Javascript中文网 - 前端进阶资源教程 https://www.javascriptc.com/
* @介绍:一个致力于帮助开发者用代码改变世界为使命的平台,每天都可以在这里找到技术世界的头条内容
* @param {number} x
* @return {number}
*/
var mySqrt = function(x) {
if(x===1)return 1
let l=0,h=Math.floor(x/2)
while(l<h){
let mid=Math.ceil((l+h)/2)
if(mid*mid>x)h=mid-1
else l=mid
}
return l
};
看完两件小事
如果你觉得这篇文章对你挺有启发,我想请你帮我两个小忙:
- 把这篇文章分享给你的朋友 / 交流群,让更多的人看到,一起进步,一起成长!
- 关注公众号 「画漫画的程序员」,公众号后台回复「资源」 免费领取我精心整理的前端进阶资源教程