Implement int sqrt(int x)
.
Compute and return the square root of x.
class Solution {
public:
/*algorithm: binary search
use x/m < m instead of x < m*m to prevent overflow
*/
int mySqrt(int x) {
if(x==0 || x==1)return x;
int l = 1,r = x;
while(l <= r){
int m = l + (r-l)/2;
if(x/m==m)return m;
else if(x/m > m){
if(x/(m+1) < (m+1))return m;
l = m+1;
}else r = m-1;
}
}
};