题目如上,我只会二分,牛顿迭代法没学过,所以只给二分的解法,但是二分法解这个的思路又很简单,所以我不做补充
class Solution {
public:
int mySqrt(int x) {
int r = x ;
int l = 0;
while(r>=l){
int mid = r + (l-r)/2;
if(mid*mid>x){
r = mid -1;
}else if(mid * mid <x){
l = mid+1;
}else{
return mid;
}
}
return l -1;
}
};