Leetcode题解/双指针2 代码有误
SaltedReed opened this issue · comments
应该把变量i, j, powSum的类型改为long,否则会出现整数溢出,2147483600这个测试用例过不了。
修改后如下:
public boolean judgeSquareSum(int target) {
if (target < 0) return false;
long i = 0, j = (long) Math.sqrt(target);
while (i <= j) {
long powSum = i * i + j * j;
if (powSum == target) {
return true;
} else if (powSum > target) {
j--;
} else {
i++;
}
}
return false;
}
同!,得改成long