天天看點

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

提示:

0 <= c <= 231 - 1

LeetCode 633. 平方數之和

一、雙指針

class Solution:
    def judgeSquareSum(self, c: int) -> bool:
        """雙指針"""
        left, right = 0, int(c ** (1 / 2))

        while left <= right:
            target = left * left + right * right
            if target < c:
                left += 1
            elif target > c:
                right -= 1
            else:
                return True

        return False