Skip to content

Leetcode题解/双指针2 代码有误 #1219

@SaltedReed

Description

@SaltedReed

应该把变量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;
 }

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions