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

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]
相关推荐
凉云生烟14 小时前
机器学习 02- KNN算法
人工智能·算法·机器学习
fenglllle14 小时前
chromadb emmbedding 向量检索
人工智能·python·embedding
wabs66614 小时前
关于动态规划【力扣583.两个字符串的删除操作的思考】
算法·leetcode·动态规划
cui_ruicheng14 小时前
Python从入门到实战(六):非序列容器
开发语言·python
可编程芯片开发14 小时前
空气流量和空气压力参数解耦系统simulink建模与仿真
算法
小小龙学IT14 小时前
C++ 并发编程深度解析:从内存模型到无锁数据结构
数据结构·c++
_Doubletful14 小时前
妙用位运算:解构汉明距离至100%(提供分析与多解)
c语言·算法·leetcode
飞猪~14 小时前
Langchain python版本 LLM 重要函数invoke,ainvoke,stream,astream,batch,abatch
python·langchain·batch
Keven_1114 小时前
AcWing算法提高课思路速查:搜索
算法·搜索
沙蒿同学15 小时前
当古诗词遇上 AI:从 38 万句诗词中取一个好名字
python·算法·架构