class Solution {
public:
int mySqrt(int x) {
if(x == 0)
return 0;
if(x == 1)
return 1;
int left = 0;
int right = x;
while(left <= right){
int mid = (left + right)/2;
if(mid <= x/mid){ //平方小于等于x的最后一个整数
if(mid == x || (mid+1) > x/(mid+1)) //对于大数,这里使用了同时除以mid,但要保证 mid != 0
return mid;
else{
left = mid+1;
}
}
else{
right = mid-1;
}
}
return -1; //上面的循环必然可以return结果,GitHub编译器要求必须按照函数的声明显式返回int值
}
};
【LeetCode069】Sqrt(x)
猜你喜欢
转载自blog.csdn.net/weixin_39458342/article/details/87915086
今日推荐
周排行