279. Perfect Squares
perfect_nums = [i * i for i in range(1, int(n**0.5)+1)] [12]
[11, 8, 9]
[[10, 7, 2], [7, 4], [2]]
...class Solution:
def numSquares(self, n: int) -> int:
perfect_nums = [i ** 2 for i in range(1, int(n**0.5)+1)]
@lru_cache(None)
def dp(n):
if n == 0:
return 0
return 1 + min([dp(n-num) for num in perfect_nums if num <= n])
return dp(n)Last updated