633. 平方数之和
给定一个非负整数 c
,你要判断是否存在两个整数 a
和 b
,使得 a2 + b2 = c
。
示例 1:
输入:c = 5 输出:true 解释:1 * 1 + 2 * 2 = 5
示例 2:
输入:c = 3 输出:false
import math
class Solution:
def judgeSquareSum(self, c: int) -> bool:
a = 0
b = int(math.isqrt(c)) # 计算 c 的整数平方根
while a <= b:
current_sum = a * a + b * b
if current_sum == c:
return True
elif current_sum < c:
a += 1
else:
b -= 1
return False
# 示例用法
solution = Solution()
print(solution.judgeSquareSum(5)) # 输出: True
print(solution.judgeSquareSum(3)) # 输出: False
这种方法的时间复杂度低非常高效