题目
给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c 。
示例
输入:c = 5
输出:true
解释:1 * 1 + 2 * 2 = 5
输入:c = 3
输出:false
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/sum-of-square-numbers
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
方法1:双指针
注意 long 型
Java实现
class Solution {
public boolean judgeSquareSum(int c) {
long l = 0, r = (long)Math.sqrt(c);
while (l <= r) {
long var = l * l + r * r;
if (var == c) return true;
else if (var > c) r--;
else l++;
}
return false;
}
}