思路——二分法
- 每个x的平方根必定小于它本身,那么就通过折半查找它的平方根
- 因为8的平方根为2.8被定为2 也即2*2=4 —— ans在 小于号 取
代码
class Solution {
public:
int mySqrt(int x) {
int l = 0, r = x, ans = -1;
while (l <= r) {
int mid = (l+r) / 2;
if ((long long)mid * mid <= x)
{ l = mid + 1;ans = mid;}
else
r = mid - 1;
}
return ans;
}
};
版权声明:本文为Dedication_原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。