目录
1. 题目解析
2. 算法原理
3. 代码编写
写在最后:
1. 题目解析
题目链接:69. x 的平方根 - 力扣(LeetCode)
这道题就是求算数平方根,
要注意的点是他只需要保留整数部分,小数部分会舍去
2. 算法原理
我们确定好一个区间 1 ~ x,数字 x 的算数平方根一定在这里面,
最简单的思路就是用暴力解法每个都遍历一遍找出来,
实际上,在这样一个有序的数组里面,我们可以使用二分查找来优化代码:
我们每次取中点 mid
当 mid * mid <= x,让 left = mid
当 mid * mid > x,让 right = mid - 1
3. 代码编写
class Solution {
public:
int mySqrt(int x) {
if(x == 0) return 0;
int left = 1, right = x;
while(left < right) {
long mid = left + (right - left + 1) / 2;
if(mid * mid <= x) left = mid;
else right = mid - 1;
}
return right;
}
};
写在最后:
以上就是本篇文章的内容了,感谢你的阅读。
如果感到有所收获的话可以给博主点一个赞哦。文章来源:https://www.toymoban.com/news/detail-726903.html
如果文章内容有遗漏或者错误的地方欢迎私信博主或者在评论区指出~文章来源地址https://www.toymoban.com/news/detail-726903.html
到了这里,关于【算法专题突破】二分查找 - x 的平方根(18)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!