题目链接
633. 平方数之和
class Solution {
public boolean judgeSquareSum(int c) {
/*
双指针:
1、初始指针 l 指向0,指针 r 指向 sqrt(c)
2、如果 a*a + b*b == c,返回 true
如果 a*a + b*b < c,左指针 l++
如果 a*a + b*b > c,右指针 r--
*/
int l = 0;
long r = (long)Math.sqrt(c);
while(l<=r){
if(l*l+r*r == c){
return true;
}else if(l*l+r*r < c){
l++;
}else r--;
}
return false;
}
}