题目:
给定一个非负整数 c
,你要判断是否存在两个整数 a
和 b
,使得 。
思路:
使用双指针的方式,首先假设 ,。
当时,找到题解,返回True。
当时,b-1,再继续查找
当时,a+1,再继续查找
代码:
class Solution:
def judgeSquareSum(self, c: int) -> bool:
left = 0
right = int(sqrt(c))
while left <= right:
sum = left ** 2 + right ** 2
if sum == c:
return True
elif sum > c:
right -= 1
else:
left += 1
return False