typedef long long ll;
class Solution {
public:
int mySqrt(int x) {
ll left = 0;
ll right = x;
while (left <= right) {
ll mid = left + ((right - left) >> 1);
if (mid * mid > x) {
right = mid - 1;
}
else if (mid * mid < x) {
left = mid + 1;
}
else return mid;
}
return left - 1;
}
};
题目二
typedef long long ll;
class Solution {
public:
bool isPerfectSquare(int num) {
ll left = 0;
ll right = num;
while (left <= right) {
ll mid = left + ((right - left) >> 1);
if(mid * mid > num) {
right = mid - 1;
}
else if (mid * mid < num) {
left = mid + 1;
}
else return true;
}
return false;
}
};