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

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]
相关推荐
Mr. zhihao几秒前
从数组到 B+ 树:一棵树的进化史
数据结构·innodb·b+树
用户03321266636710 分钟前
如何在 Python 环境中裁剪 PDF 页面
python
威联通网络存储13 分钟前
TS-h2287XU-RP 在医药制造批记录与合规归档场景的部署
python·制造
蓝鸟197420 分钟前
Python Flask + Oracle 接口开发 小白完整版笔记(入参/查库/批量/JSON/避坑)
python·oracle·flask
船厂电气自动化ai大模型25 分钟前
AI大模型与数学第64课:矩阵×向量乘法(神经网络矩阵运算底层)
数据结构·深度学习·线性代数·机器学习·推荐算法
Navigator_Z26 分钟前
LeetCode //C - 1223. Dice Roll Simulation
c语言·算法·leetcode
正在走向自律26 分钟前
从 Python 基础到大模型落地:读《深入浅出 Python 人工智能》,吃透 AI 工程化 CRUD 实战
开发语言·人工智能·python·机器学习·知识脉络
171320330计算机毕设编程28 分钟前
2027计算机毕设五大方向对比&选题推荐
java·ide·python·算法·django·php·推荐算法
Zane199430 分钟前
去重用 set 到底能快多少?实测差距接近三百倍
后端·python
Tisfy32 分钟前
LeetCode 2058.找出临界点之间的最小和最大距离:遍历+遇到极值则更新(这种题谁空间复杂度不是O(1)啊)
linux·数据库·leetcode·链表·题解·模拟·遍历