今日力扣:633. 平方数之和python3解法

时间:2024-11-10 08:05:19

633. 平方数之和

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

示例 1:

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

示例 2:

输入:c = 3
输出:false
import math

class Solution:
    def judgeSquareSum(self, c: int) -> bool:
        a = 0
        b = int(math.isqrt(c))  # 计算 c 的整数平方根

        while a <= b:
            current_sum = a * a + b * b
            if current_sum == c:
                return True
            elif current_sum < c:
                a += 1
            else:
                b -= 1

        return False

# 示例用法
solution = Solution()
print(solution.judgeSquareSum(5))  # 输出: True
print(solution.judgeSquareSum(3))  # 输出: False

这种方法的时间复杂度低非常高效