Implement int sqrt(int x)
.
Compute and return the square root of x.
public class Solution {
public int mySqrt(int num) {
if(num == 1){
return num;
}
long l = 0, r = num;
while(l <= r){
long m = l + (r - l)/2;
long value = m*m;
if(num == value){
return (int)m;
}else if(num > m*m){
l = m + 1;
}else{
r = m - 1;
}
}
return (int)r;
}
}
用long是为了防止overdlow.
为数不多返回r的题。带一个例子进去算算即可。