Leetcode633:平方数之和

题目

平方数之和

给定一个非负整数 c ,你要判断是否存在两个整数 ab,使得 $a^2+b^2$ = c。

1
2
3
输入: 5
输出: True
解释: 1 * 1 + 2 * 2 = 5

双指针解法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class judgeSquareSum{
public boolean judgeSquareSum(int target){

//判断target是否为正
if (target <0) return false;
int i = 0;
int j = (int)Math.sqrt(target);

while(i <= j){
int powSum = i * i + j * j;
if (powSum == target){
return true;
}else if (powSum > target){
j--;
}else {
i++;
}
}
return false;
}

}