leetcode力扣刷题打卡
题目:367. 有效的完全平方数
描述:给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false 。
进阶:不要 使用任何内置的库函数,如 sqrt 。
解题思路
1、先用二分找到那个乘积<=num的值;
2、判断该值的平方是否=num,是就返回true,,否则返回false;
原代码##
class Solution {
public:
bool isPerfectSquare(int num) {
long long l = 0, r = num;
while (l != r) {
long long mid = (l + r + 1) / 2;
if (mid * mid > num) r = mid - 1;
else l = mid;
}
return l * l == num ? true : false;
}
};