给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c。
示例1:
输入: 5 输出: True 解释: 1 * 1 + 2 * 2 = 5
示例2:
输入: 3 输出: False
public static boolean judgeSquareSum(int c){
int i=0,j=(int)Math.sqrt(c);
while(i<=j){
int sum=i*i+j*j;
if(sum==c){
return true;
}
else if(sum>c){
j--;
}
else{
i++;
}
}
return false;
}
本文探讨了如何判断是否存在两个整数a和b,使得它们的平方和等于给定的非负整数c。通过双指针算法,我们可以在O(sqrt(c))的时间复杂度内解决这个问题,提供了一个高效的解决方案。
1108

被折叠的 条评论
为什么被折叠?



