633. 平方数之和
难度中等211
给定一个非负整数 c
,你要判断是否存在两个整数 a
和 b
,使得 a2 + b2 = c
。
示例 1:
1 | 输入:c = 5 |
示例 2:
1 | 输入:c = 3 |
示例 3:
1 | 输入:c = 4 |
示例 4:
1 | 输入:c = 2 |
示例 5:
1 | 输入:c = 1 |
提示:
0 <= c <= 231 - 1
通过次数56,056
提交次数148,889
双指针
拆分的两个数的最大值是Math.sqrt(c)
利用当前两数字的平方和判断是大于目标值还是小于目标值,如果是小于目标值,就将左指针右移,否则将右指针左移
1 | class Solution { |
sqrt
1 | class Solution { |
费马平方和定理
费马平方和定理:
一个非负整数 $c$ 如果能够表示为两个整数的平方和,当且仅当 $c$ 的所有形如 $4k + 3$的质因子的幂均为偶数。
1 |
|