diff --git a/python/problem_633/README.md b/python/problem_633/README.md new file mode 100644 index 0000000..42c840d --- /dev/null +++ b/python/problem_633/README.md @@ -0,0 +1,24 @@ +# 633. Sum of Square Numbers + +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 + + diff --git a/python/problem_633/solution1.py b/python/problem_633/solution1.py new file mode 100644 index 0000000..8fb310f --- /dev/null +++ b/python/problem_633/solution1.py @@ -0,0 +1,25 @@ +class Solution: + def judgeSquareSum(self, c: int) -> bool: + # get the square root + # int num + + sqrt_num = c ** 0.5 + + int_num = int(str(sqrt_num).split(".")[0]) + sqr_num = int_num ** 2 + + if sqr_num == c: + return True + + # memoization + mem = set() + + for i in range(int_num, 0, -1): + mem.add(i ** 2) + + for i in mem: + if (c - i) in mem: + return True + + return False +