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

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]
相关推荐
爱跳舞的烤冷面几秒前
自学嵌入式第19天(数据结构篇——栈)
数据结构
㳺三才人子2 分钟前
初探 Data Analysis - Matplotlib
python·plotly·pandas·matplotlib
Python私教13 分钟前
0、null、未采集:AI Agent 反馈系统最容易踩的语义坑
人工智能·python
北斗落凡尘22 分钟前
LangGraph 入门实战(5)
python·langchain
乐观勇敢坚强的老彭23 分钟前
C++ STL 常用容器的速查表
java·c++·算法
北冥you鱼25 分钟前
深入解析 Go 中 sync.YAML.Unmarshal:如何将 YAML 数据填充到 Config 结构体
开发语言·算法·golang
Python私教32 分钟前
请求超时不等于失败:把写操作恢复设计成事实回读
后端·python
且听风吟022039 分钟前
7.包管理工具
python
evans在进步1 小时前
LeetCode 74:搜索二维矩阵——Java 虚拟一维数组与二分查找详解
java·leetcode·矩阵
程序员杰哥1 小时前
依赖于第三方接口时,如何进行测试?
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试