LeetCode 633. 平方数之和

简介: LeetCode 633. 平方数之和

633. 平方数之和


给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c 。


示例 1:


输入:c = 5
输出:true


解释:1 * 1 + 2 * 2 = 5


示例 2:


输入:c = 3
输出:false


示例 3:


输入:c = 4
输出:true
• 1
• 2


示例 4:


输入:c = 2
输出:true


示例 5:


输入:c = 1
输出:true


题解


右指针的初始化,实现剪枝,从而降低时间复杂度。设右指针为 x,左指针固定为 0,为了使 x的值尽可能接近 target,我们可以将 x 取为 sqrt(target)。


因为最多只需要遍历一次 0~sqrt(target),所以时间复杂度为 O(sqrt(target))。又因为只使用了两个额外的变量,因此空间复杂度为 O(1)。


链接:https://leetcode-cn.com/problems/sum-of-square-numbers/solution/shuang-zhi-zhen-jie-ti-by-simple-zd-hj34/


代码


class Solution {
public:
    bool judgeSquareSum(int c) {
        long l=0,r=sqrt(c);
        int sum=0;
        while(l<=r)
        {
            sum=l*l+r*r;
            if(sum==c)
                return true;
            else if(sum>c)
                r--;
            else
                l++;        
        }
        return false;
    }
};
相关文章
|
Go
golang力扣leetcode 279.完全平方数
golang力扣leetcode 279.完全平方数
82 0
|
Java
leetcode-279:完全平方数
leetcode-279:完全平方数
141 0
|
Java C++ Python
leetcode-977:有序数组的平方
leetcode-977:有序数组的平方
83 0
【Leetcode -367.有效的完全平方数 -374.猜数字大小】
【Leetcode -367.有效的完全平方数 -374.猜数字大小】
107 0
|
机器学习/深度学习 算法
代码随想录Day02 数组基础2 leetcode T977有序数组的平方, T209 长度最小的子数组,T59 螺旋矩阵II
代码随想录Day02 数组基础2 leetcode T977有序数组的平方, T209 长度最小的子数组,T59 螺旋矩阵II
99 0
|
Python
【Leetcode刷题Python】977. 有序数组的平方
解决LeetCode "有序数组的平方" 问题的方法:使用Python内置的快速排序、直接插入排序(但会超时)和双指针技术,并给出了每种方法的Python实现代码。
67 1
【Leetcode刷题Python】977. 有序数组的平方
|
Python
【Leetcode刷题Python】279. 完全平方数
LeetCode 279题 "完全平方数" 的Python解决方案,使用动态规划来找到和为给定整数n的完全平方数的最少数量。
172 0
|
Python
【Leetcode刷题Python】367. 有效的完全平方数
本文提供了两种判断一个正整数是否为完全平方数的Python实现方法:一种是利用数学公式逐个减去奇数的方法,另一种是使用二分查找优化的暴力求解方法。
144 0
YI
|
Go
LeetCode 0977.有序数组的平方【Go】
LeetCode 0977.有序数组的平方【Go】
YI
168 0

热门文章

最新文章