力扣每日一题:633.平方数之和

简介: 力扣每日一题:633.平方数之和

633.平方数之和


https://leetcode-cn.com/problems/sum-of-square-numbers/

难度:中等


题目:

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

提示:

0 <= c <= 231 - 1


示例:

示例 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


分析

这道题感觉有些不符合中等题的难度,题目有些短所以理解上有些出入。

描述C的时候专门说是非负整数,说a和b的时候又成了整数,但其实a b均可以为0。

提供for循环调用sqrt 和 双指针两种解题,但本质上差别不大。


解题:

from math import sqrt
class Solution:
    def judgeSquareSum(self, c: int) -> bool:
        r = int(sqrt(c))
        for num in range(r + 1):
            if sqrt(c - num ** 2) % 1 == 0:
                return True
        return False

class Solution:
    def judgeSquareSum(self, c):
        left = 0
        right = int(c ** 0.5) + 1
        while left <= right:
            total = left ** 2 + right ** 2
            if total == c:
                return True
            elif total > c:
                right -= 1
            else:
                left += 1
        return False




相关文章
|
8月前
|
Java
leetcode-279:完全平方数
leetcode-279:完全平方数
78 0
【Leetcode -367.有效的完全平方数 -374.猜数字大小】
【Leetcode -367.有效的完全平方数 -374.猜数字大小】
56 0
|
5月前
|
Python
【Leetcode刷题Python】279. 完全平方数
LeetCode 279题 "完全平方数" 的Python解决方案,使用动态规划来找到和为给定整数n的完全平方数的最少数量。
49 0
|
5月前
|
Python
【Leetcode刷题Python】367. 有效的完全平方数
本文提供了两种判断一个正整数是否为完全平方数的Python实现方法:一种是利用数学公式逐个减去奇数的方法,另一种是使用二分查找优化的暴力求解方法。
77 0
【超直白】leetcode 279 完全平方数
【超直白】leetcode 279 完全平方数
|
8月前
[leetcode ~dp ]279. 完全平方数
[leetcode ~dp ]279. 完全平方数
|
8月前
代码随想录 Day38 完全背包问题 LeetCode T70 爬楼梯 T322 零钱兑换 T279 完全平方数
代码随想录 Day38 完全背包问题 LeetCode T70 爬楼梯 T322 零钱兑换 T279 完全平方数
43 0
|
8月前
leetcode279完全平方数刷题打卡
leetcode279完全平方数刷题打卡
48 0
|
算法
代码随想录算法训练营第四十五天 | LeetCode 70. 爬楼梯、322. 零钱兑换、279. 完全平方数
代码随想录算法训练营第四十五天 | LeetCode 70. 爬楼梯、322. 零钱兑换、279. 完全平方数
88 1
|
C++
367力扣有效的完全平方数C++
367力扣有效的完全平方数C++
58 0