代码编织梦想

633. 平方数之和

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

示例 1:

输入:c = 5
输出:true

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

示例 2:

输入:c = 3
输出:false

示例 3:

输入:c = 4
输出:true

示例 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;
    }
};
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_45525272/article/details/114670993

leetcode 633.平方数之和-爱代码爱编程

在此题最容易的想法就是暴力法做嵌套循环,下面源码: class Solution { public boolean judgeSquareSum(int c) { int a = (int)Math

leetcode 633.平方数之和_weixin_41431527的博客-爱代码爱编程

633.平方数之和 这道题目很简单,估计大家都能做出来,估计没人会看这篇文章,我就随便写写,没鸭力啦! 题目内容: 给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a ^2 + b ^2 = c。

leetcode 633. 平方数之和(python)_洛洛洛洛洛洛洛的博客-爱代码爱编程

题目链接 题目描述: 给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c。 示例1: 输入: 5 输出: True 解释: 1 * 1 + 2 * 2 = 5 示例2: 输入

633. 两个整数的平方数之和_linke_linux的博客-爱代码爱编程

给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c。 示例1: 输入: 5 输出: True 解释: 1 * 1 + 2 * 2 = 5   示例2: 输入: 3 输出: False 1:第一次采用的写法 : int judgeSquareSum(int c){ int i=0; int

leetcode633. 平方数之和-爱代码爱编程

平方数之和 给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c。 示例1: 输入: 5 输出: True 解释: 1 * 1 + 2 * 2 = 5 来

LeetCode 633.平方数之和(python题解)-爱代码爱编程

LeetCode 633.平方数之和(python题解) 题目示例分析题解用到的基础知识计算平方和平方根取整参考 题目 给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c 示例 输入: 5 输出: True 解释: 1 * 1 + 2 * 2 = 5 分析 本题与上一题 LeetCode 167

leetcode633. 平方数之和-爱代码爱编程

题目:给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c。 示例1: 输入: 5 输出: True 解释: 1 * 1 + 2 * 2 = 5 示例2: 输入: 3 输出: False 思路:双指针 class Solution { public boolean judgeSquareSum(in

Leetcode 633. 平方数之和 (数学题)-爱代码爱编程

  直接使用数学枚举: class Solution { public: bool isSquare(int c){ return (int) sqrt(c) * (int) sqrt(c) == c; } bool judgeSquareSum(int c) { if(isSquare(c)

每日一题 LeetCode 633. 平方数之和 java题解-爱代码爱编程

题目 https://leetcode-cn.com/problems/sum-of-square-numbers/ 使用sqrt class Solution { //算上0的平方了 public boolean judgeSquareSum(int c) { if(c==0) return

leetcode 633.平方数之和-爱代码爱编程

leetcode 633.平方数之和 题干 给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c 。 示例 1: 输入:c = 5 输出:true 解释:1 * 1 + 2 * 2 = 5 示例 2: 输入:c = 3 输出:false 示例 3: 输入:c = 4 输出:true 示例 4: 输入:c =

Leetcode633. 平方数之和-爱代码爱编程

Leetcode633. 平方数之和 题目思路结果与不足之处新知识自己的代码官方代码 题目 链接: 633. 题目描述:给定一个非负整数c,你要判断是否存在两个整数a和b,使得a ^ 2 + b ^ 2 = c。 样例: 输入:c = 5 输出:true 解释:1 * 1 + 2 * 2 = 5 提示:   0 <= c <

leetcode633. 平方数之和(mid)-爱代码爱编程

平方数之和 题目描述解题思路代码(双指针)复杂度 力扣链接 题目描述 给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a^2 + b^2 = c 。 示例 1: 输入:c = 5 输出:true 解释:1 * 1 + 2 * 2 = 5 示例 2: 输入:c = 3 输出:false 示例 3: 输入:c

​ leetcode 633. 平方数之和 medium ​-爱代码爱编程

 leetcode  633. 平方数之和 medium           题目描述:   解题思路: 双指针, i从0开始取,j从可取的最大数sqrt(c) 开始 代码: // class Solution { public: bool judgeSquareSum(int c) { int i =

3 分钟教你如何在 github 上精确的找开源项目?-爱代码爱编程

在 github 中对项目进行搜索的时候,可以针对项目的 名称、描述、readme、star 数量、fork 中的内容进行精确搜索(而不是直接在搜索框中输入笼统的名字出来一堆不感兴趣的东西) 下面列举的条件都可以并行使用 以 Spring Boot 为例 一、关键字出现的位置 1、出现在项目名中 in:name spring boot