diff --git a/problems/0279.完全平方数.md b/problems/0279.完全平方数.md index 8d8b161c..60d6d165 100644 --- a/problems/0279.完全平方数.md +++ b/problems/0279.完全平方数.md @@ -26,7 +26,7 @@ 输入:n = 13 输出:2 解释:13 = 4 + 9 -  + 提示: * 1 <= n <= 10^4 @@ -184,6 +184,38 @@ class Solution { Python: +```python3 +class Solution: + def numSquares(self, n: int) -> int: + '''版本一''' + # 初始化 + nums = [i**2 for i in range(1, n + 1) if i**2 <= n] + dp = [10**4]*(n + 1) + dp[0] = 0 + # 遍历背包 + for j in range(1, n + 1): + # 遍历物品 + for num in nums: + if j >= num: + dp[j] = min(dp[j], dp[j - num] + 1) + return dp[n] + + def numSquares1(self, n: int) -> int: + '''版本二''' + # 初始化 + nums = [i**2 for i in range(1, n + 1) if i**2 <= n] + dp = [10**4]*(n + 1) + dp[0] = 0 + # 遍历物品 + for num in nums: + # 遍历背包 + for j in range(num, n + 1) + dp[j] = min(dp[j], dp[j - num] + 1) + return dp[n] +``` + + + Go: ```go