x的平方根
高刷题(暴力法)
class Solution {
public:
int mySqrt(int x) {
for(long long i=0 ; i<=x ;i++)
{
if(i*i == x) return i;
if(i*i > x) return i-1;
}
return x;
}
};
高刷题(二分查找)
class Solution {
public:
int mySqrt(int x) {
int left = 0 , right = x;
while(left <= right)
{
long long mid = (right + left)/2;
if(mid*mid < x && (mid+1)*(mid+1) > x) return mid;
if(mid*mid == x ) return mid;
else if(mid*mid < x) left = mid + 1;
else if(mid*mid > x) right = mid -1;
}
return x;
}
};