Implement int sqrt(int x)
.
Compute and return the square root of x.
考虑到不是完全平方数的情况
class Solution {
public:
int mySqrt(int x) {
if(x <= 0) return 0;
int low = 1;
int high = x;
int mid;
while (low <= high) {
mid = (high + low)/ 2;
if ((x / mid >= mid) && ((mid + 1) > x / (mid + 1))) { //to avoid overflow
return mid;
} else if ( x / mid < mid ) {
high = mid - 1;
} else {
low = mid + 1;
}
}
return -1;
}
};