代码随想录 -- 动态规划 -- 完全平方数

279. 完全平方数 - 力扣(LeetCode)

思路:

  • dpj的含义:组成和为n最少需要dpj个完全平方数
  • 递推公式:dpj=min(dpj,dpj-i\*i+1)
  • 初始化:dp0=0,其他的初始化为比10000还大的数
  • 遍历顺序:先物品后背包
python 复制代码
class Solution(object):
    def numSquares(self, n):
        dp=[10010]*(n+1)
        dp[0]=0
        for i in range(1,n/2+2):
            for j in range(i*i,n+1):
                dp[j]=min(dp[j],dp[j-i*i]+1)
        return dp[n]
相关推荐
CyrusYiVPP19 小时前
手写 MCP Server:给问答机器人接上本地文件工具,Python 实战第 13 期
人工智能·python
Delightrs19 小时前
Rust LeetCode238 算法题解
开发语言·算法·rust
特立独行的猫A20 小时前
cj-tauri:用仓颉写桌面与鸿蒙 PC 应用
java·后端·python
自信1504130575920 小时前
重生之从0开始学习c++之——vector-中篇
c++·学习·算法
文丑颜不良啊20 小时前
LeetCode2501~2520题目解析
java·leetcode
qq_158895411111 天前
AI 音乐生成完成后,音频 URL 为什么会过期?一套可恢复的交付方案
python·api·ai音乐
Warson_L1 天前
高性能架构设计
python·go
databook1 天前
新数据到手,先跑哪几步检查
python·数据分析
GoAI1 天前
DeepSeek Harness Memory (一)主流记忆插件总结
后端·算法·面试