给定一个非负整数 c,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c 。
示例 1:
输入:c = 5 输出:true 解释:1 * 1 + 2 * 2 = 5
示例 2:
输入:c = 3 输出:false
解题思路:使用双指针:
public boolean judgeSquareSum(int c) {
int i = 0;
int j = (int)Math.sqrt(c);
int sum = 0;
while(i <= j) {
sum = i*i + j*j;
if(sum > c) {
j--;
} else if (sum < c){
i++;
} else {
return true;
}
}
return false;
}
网友评论