题目:平方数之和
给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a 的平方加 b 的平方等于 c 。
复制代码
示例:
输入: 5
输出: True
解释: 1 * 1 + 2 * 2 = 5
输入: 3
输出: False
复制代码
思考:
这题因为 a * a + b * b = c,所以 a < 根号c,b < 根号c。
所以可以用两个变量i = 0,j = 根号c,
当 i <= j 时,计算i * i + j * j
当结果小于c则i++,否则j--,
若结果等于c则返回true。
复制代码
实现:
class Solution {
public boolean judgeSquareSum(int c) {
int i = 0;
int j = (int) Math.sqrt(c);
while (i <= j) {
int num = i * i + j * j;
if (num == c) {
return true;
}
if (num < c) {
i++;
} else {
j--;
}
}
return false;
}
}
复制代码
转载于:https://juejin.im/post/5d063d4ae51d4550a629b275