sqrt(x)
解题思路
使用二分法查找s*s<=x的s值。
代码实现
class Solution {
public:
int mySqrt(int x) {
long long low = 0;
long long high = x/2+1;
while (low <= high) //**一定要是<=,不然不等于是就会大1**
{
long long mid = (low+high)/2;
long long res = mid*mid;
if(res == x) return mid;
else if (res < x ) low = mid + 1;
else high = mid - 1;
}
return high;
}
};