279. 完全平方数 - 力扣(LeetCode)
class Solution:def numSquares(self, n: int) -> int:# 初始化 dp 数组,dp[i] 存储和为 i 的最少完全平方数数量dp = [float('inf')] * (n + 1)dp[0] = 0 # 和为 0 的最少完全平方数数量是 0for i in range(1, n + 1):# 遍历所有小于等于 i 的完全平方数j = 1while j * j <= i:dp[i] = min(dp[i], dp[i - j * j] + 1)j += 1return dp[n]