【633. 平方数之和】

阅读 34

2022-02-22

题目链接
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;
    }
}

精彩评论(0)

0 0 举报