题意
实现一个求整数平方根的函数,返回一个整数
题解
从0遍历到x/2+1会超时,使用二分查找。
代码
“`c++
class Solution {
public:
int mySqrt(int x) {
typedef long long LL;
if(x == 0 || x == 1)
return x;
LL low = 0;
LL high = x / 2 + 1; // sqrt(x) at least x / 2 + 1
while(low < high)
{
LL mid = (low + high) / 2;
if(mid * mid <= x && (mid + 1) * (mid + 1) > x)
return mid;
else if(mid * mid > x)
high = mid - 1;
else
low = mid + 1;
}
}
};