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

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]
相关推荐
zander2589 小时前
LeetCode 739:每日温度——为什么单调栈要持续弹出
开发语言·python·算法
2601_955759889 小时前
如何降低 Claude API 批量生产返工率
大数据·人工智能·算法
rannn_1119 小时前
【力扣hot100】链表专题下|138、148、23、146
java·算法·leetcode·链表·开发
ly76899 小时前
分布式一致性算法详解:从 2PC、3PC 到 Paxos、Raft、ZAB
分布式·算法
for_ever_love__9 小时前
python基础语法学习: 文件操作
python·学习
阿维的博客日记9 小时前
保姆级教程-BBPE分词算法
算法·bbpe
青春不败 177-3266-052010 小时前
基于R、Python的Copula变量相关性分析及AI大模型应用
人工智能·python·r语言·贝叶斯·统计学·copula
不会就选b10 小时前
算法日常・每日刷题--<优先级队列>2
数据结构·算法
hanlin0310 小时前
刷题笔记:力扣第189题-轮转数组
笔记·算法·leetcode
琥珀色糖10 小时前
leetcode hot100题(持续更新)移动零(双指针)
算法·leetcode·职场和发展·双指针·移动零