Problem Link

Description


Given a non-negative integer c, decide whether there're two integers a and b such that a2 + b2 = c.

 

Example 1:

Input: c = 5
Output: true
Explanation: 1 * 1 + 2 * 2 = 5

Example 2:

Input: c = 3
Output: false

 

Constraints:

  • 0 <= c <= 231 - 1

Solution


Python3

class Solution:
    def judgeSquareSum(self, c: int) -> bool:
        left, right = 0, int(math.sqrt(c))
 
        while left <= right:
            curr = left * left + right * right
            
            if curr == c:
                return True
            elif curr > c:
                right -= 1
            else:
                left += 1
        
        return False