肯定不是一句话解决哈哈哈
用了万能2分,注意long long 就ok了
class Solution {
public:
int mySqrt(int x) {
if(x == 1) return 1;
long long int first = 0, len = x;
long long int half, middle;
while(len > 0){
half = len >> 1;
middle = first + half;
if(middle * middle > x)
len = half;
else{
first = middle + 1;
len = len - half - 1;
}
}
if(first * first > x) first--;
return first;
}
};