class Solution {
public:
int mySqrt(int x) {
int left = 0;
int right = x;
int mid;
if(x == 0) return 0;
if(x == 1) return 1;
while(left <= right){
mid = (left + right) / 2;
if(x / mid == mid){
return mid;
break;
}else if(mid > x / mid){
right = mid - 1;
}else{
left = mid + 1;
}
}
return right;
}
};
用二分法做,可以用x/mid的方式判断来防止溢出,但是要特殊把0列举出来,因为分母不能为0


