/*
采用二分查找
*/
class Solution {
public:
typedef long long ll;
int mySqrt(int x) {
if(x == 0 || x == 1) return x;
ll l=0;
ll r=x/2;
while(l <= r)
{
ll mid=(l+r)/2;
if(mid*mid <= x && (mid+1)*(mid+1) > x)
return (int)mid;
else if(mid*mid < x) l=mid+1;
else r=mid-1;
}
return (int)((l+r)/2);
}
};