思路:双指针,左指针0开始,右指针sqrt(c)+1开始,得到的值大了,右指针–,小了左指针++,唯一需要注意的就是本题大小超过int,开longlong
class Solution {
public:
bool judgeSquareSum(int c) {
long long l,r;
l = 0;
r = sqrt(c)+1;
while(l <= r){
long long temp = l * l + r * r;
if(temp == c){
return true;
}else if(temp > c){
r--;
}else{
l++;
}
}
return false;
}
};