Leetcode 367. 有效的完全平方数
思路:二分
因为完全平方数因子在1 num1~num1 num之间,且具有单调性,因此通过二分查找可以在log(n)log(n)log(n)时间内查找到结果
时间复杂度:O(log(n))O(log(n))O(log(n))
空间复杂度:O(k)O(k)O(k)常数
class Solution {
public:
typedef long long LL;
bool isPerfectSquare(int num) {
int l = 1, r = num;
while (l <= r) {
LL mid = (LL)l + r >> 1;
if (mid * mid > num) r = mid - 1;
else if (mid * mid < num) l = mid + 1;
else return true;
}
return false;
}
};
本文介绍了一种使用二分查找方法解决LeetCode367题——判断一个整数是否为完全平方数的有效算法。该算法的时间复杂度为O(log(n)),空间复杂度为O(1),通过在1到给定数值之间进行二分查找来确定是否存在一个平方根使得其平方等于给定数值。
1002

被折叠的 条评论
为什么被折叠?



