leetcode633

平方数之和
Category Difficulty Likes Dislikes
algorithms Medium (39.41%) 403 -
Tags
Companies
给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c 。

示例 1:

输入:c = 5
输出:true
解释:1 * 1 + 2 * 2 = 5
示例 2:

输入:c = 3
输出:false

提示:

0 <= c <= 231 - 1
Discussion | Solution

class Solution {
public:
    bool judgeSquareSum(int c) {
        int max = sqrt(c);
        int l = 0;
        while(l <= max)
        {
            long value = (long)l*l + (long)max*max;
            if(value == c)
                return true;
            else if(value < c)
                l++;
            else
                max--;
        }
        return false;
    }
};

posted @ 2022-11-17 14:47  雷leileilei  阅读(13)  评论(0编辑  收藏  举报