平方数之和(力扣)双指针 JAVA
给定一个非负整数 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;}
}