题意:求x的平方根的整数部分。
思路:二分查找。注意数据不要溢出。
class Solution {
public:
int mySqrt(int x) {
int low = 0;
int high = x;
while(low != high) {
double mid = ceil(low + (high - low) / 2.0);
if(abs(mid * mid - x) < 1e-5) return mid;
if(mid * mid < (double)x) low = (int)mid;
else high = (int)mid - 1;
}
return low;
}
};