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

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]
相关推荐
外收内放9 小时前
Python与AI应用(项目开发实战:AI智能伴侣第一版)
python·学习·ai编程
绘梨衣5479 小时前
慢SQL排查手册
python·sql
troy1289 小时前
告别 Copilot?Codex、Claude Code、DeepSeek Harness、Kimi、ChatGPT 哪个更适合本地化部署,更有性价比?
人工智能·python·开源软件
不会就选b9 小时前
算法日常・每日刷题--<贪心>17
算法
IvanCodes9 小时前
Python 文件操作(十二):文件与目录的读写
开发语言·python
随便发挥11 小时前
Leetcode 剑指 Offer II 186. 文物朝代判断
leetcode
6Hzlia11 小时前
【Classic 150 刷题计划】 LeetCode 205. 同构字符串 | C++ 双向绑定与哈希表映射
c++·算法·leetcode
Y幽谷客17 小时前
Python加载本地大模型(Qwen3.5 8B)
python·大模型
伞伞悦读18 小时前
【第36期】Python 目录与路径详解:pathlib、文件遍历、创建、复制、移动和删除风险
开发语言·python
有点。18 小时前
C++03阶段练习(练习题)
数据结构·算法·图论