[
math
binary search
]
Leetcode 0633. Sum of Square Numbers
Problem statement
https://leetcode.com/problems/sum-of-square-numbers/
Solution
I am not sure, why this problem is marked as medium: all you need to do is to do bruteforce: just consider all numbers before sqrt(c) and check if corresponding b is integer. Why we need to check all numbers only before sqrt(c)? Because square is always not-negative and if first part is greater than c, we can not make sum equal to c.
Complexity
Time complexity is O(sqrt(c)), space complexity is O(1).
Code
class Solution:
def judgeSquareSum(self, c):
for i in range(int(math.sqrt(c))+1):
j = c - i*i
if int(math.sqrt(j))**2 == j: return True
return False