367.有效的完全平方数
就是一个最简单的二分查找,找有没有整数的根号解。
开根的逻辑:69
二分查找的逻辑:704
完整代码
cpp
class Solution {
public:
bool isPerfectSquare(int num)
{
int l = 1, r = num, m;
while (l <= r) {
m = l + (r - l) / 2;
if (static_cast<long long>(m) * m > num) {
r = m - 1;
}
else if (static_cast<long long>(m) * m < num) {
l = m + 1;
}
else {
return true;
}
}
return false;
}
};