69. Sqrt(x)
思路:二分查找
class Solution {
public:
int mySqrt(int x) {
//1:考虑特殊情况
if(x<2) return x;
//2:初始化边界
int low = 2,high = x/2; //平方跟的最大在它的一半以内,缩短时间
while(low<=high) {
int middle = low + (high-low)/2; //防止溢出情况
//防止溢出使用除法
if(middle == x/middle) return middle;
else if (middle < x/middle) low = middle +1;
else high = middle -1;
}
return high;
}
};