天天看点

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