class Solution {
public:
int sqrt(int x) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
int s = 0;
int t = min(1 << 16, x);
while (s <= t) {
int p = (s + t) / 2;
int q = p * p;
if (q == x)
return p;
else if (q > x || q < 0)
t = p - 1;
else
s = p + 1;
}
return t;
}
};
Small Case: 8ms
Large Case: 56ms
Time: O(lgn)
Space: O(1)