Implement int sqrt(int x)
.
Compute and return the square root of x.
思路:sqrt(x)肯定是在0到x/2+1之间,因此在这个区间进行二分查找即可
代码:
class Solution {
public:
int sqrt(int x) {
if(x==0) return 0;
if(x==1) return 1;
long long i=0,j=x/2+1;
while(i<=j){
long long mid=(i+j)/2;
if(mid*mid==x) return mid;
if(mid*mid<x){
i=mid+1;
}
if(mid*mid>x){
j=mid-1;
}
}
return j;
}
};