给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a^2 + b^2 = c 。
示例 1:
输入:c = 5
输出:true
解释:1 * 1 + 2 * 2 = 5
示例 2:
输入:c = 3
输出:false
提示:
0 <= c <= 2^31 - 1
解题思路:
1、采用双指针在构建的二维矩阵中查找
2、得用long类型变量
3、l = 0, r = Math.sqrt( c )
代码:
class Solution {
public boolean judgeSquareSum(int c) {
long l = 0, r = (long) Math.sqrt(c);
while(l <= r) {
if(l * l + r * r > c) r --;
else if(l * l + r * r < c) l ++;
else return true;
}
return false;
}
}