双指针: 判断一个非负整数是否为两个整数的平方和。(633)
Output: True
Explanation: 1 * 1 + 2 * 2 = 5
题目描述:判断一个非负整数是否为两个整数的平方和。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
class Solution:
def judgeSquareSum(self, c: int) -> bool:
a=int(c**0.5)
b=1
while b<=a:
if a**2+b**2==c:
print(a,b)
print(True)
return True
if a**2+b**2>c:
a-=1
if a**2+b**2<c:
b+=1
if b>a:
print(False)
return False
Solution().judgeSquareSum(2)
思路:采用双指针,让a=最大的数 就是目标数的开方,b=最小的1,两数平方相加大于目标数则大数减一,反之小数加一,直到相遇
(完)
0条看法
最新最后最热
等待你的评论