633. 平方数之和

题目

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

示例1:

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

示例2:

1
2
输入: 3
输出: False

解法

解法一:

不好说

Java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Solution {
public boolean judgeSquareSum(int c) {
if (c < 0) {
return false;
}
int mid = (int) Math.sqrt(c);
int left = 0;
int right = mid;
while (left <= right ) {
if (c == left * left + right * right) {
return true;
} else if (c > left * left + right * right) {
left++;
} else {
right--;
}
}
return false;
}
}
0%