算法1 哈希表,O($\sqrt{n}$)
从0到$\sqrt{c}$枚举$i$,将所有$i^2$加到hash表中。
枚举hash表中的所有值$x$,如果$c-x$也在hash表中,返回true,否则返回false。
python代码
class Solution:
def judgeSquareSum(self, c: int) -> bool:
sq_nums = set()
i = 0
while i * i <= c:
sq_nums.add(i * i)
i += 1
for sq_num in sq_nums:
if c - sq_num in sq_nums:
return True
return False