🌗 367. 有效的完全平方数
2022年6月9日
- algorithm
🌗 367. 有效的完全平方数
难度: 🌗
问题描述
解法
class Solution {
public boolean isPerfectSquare(int num) {
// 思路:
// 二分
return mySol((long) num, 1, num);
}
private boolean mySol(long target, int left, int right) {
// 递归终止条件
if(left > right) {
return false;
}
if(left == right) {
if(target == (long) left * (long) right) {
return true;
} else {
return false;
}
}
// left < right
int mid = left + ((right - left) >> 1);
long mul = (long) mid * (long) mid;
if(target == mul) {
return true;
} else if(target > mul) {
left = mid + 1;
return mySol(target, left, right);
} else {
// target < mul
right = mid - 1;
return mySol(target, left, right);
}
}
}