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

279. 完全平方数 - 力扣(LeetCode)

思路:

  • dp[j]的含义:组成和为n最少需要dp[j]个完全平方数
  • 递推公式:dp[j]=min(dp[j],dp[j-i*i]+1)
  • 初始化:dp[0]=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]
相关推荐
徐浪老师38 分钟前
C语言实现冒泡排序:从基础到优化全解析
c语言·算法·排序算法
hr_net40 分钟前
图论入门编程
算法·图论
李小白6640 分钟前
各种排序算法
数据结构·算法·排序算法
ZXF_H43 分钟前
pip安装github上的开源软件包
git·python·github·pip
浪前43 分钟前
排序算法之冒泡排序篇
数据结构·算法·排序算法
没事别学JAVA44 分钟前
使用Python编写Windows系统服务管理脚本,主要用于管理mysql、postgresql等服务
windows·python
小黄编程快乐屋1 小时前
各个排序算法基础速通万字介绍
java·算法·排序算法
PeterClerk1 小时前
图论基础知识
算法·深度优先·图论
是糖不是唐1 小时前
代码随想录算法训练营第五十八天|Day58 图论
c语言·算法·图论
yivifu2 小时前
用python将一个扫描pdf文件改成二值图片组成的pdf文件
python·pdf·numpy·pillow·pymupdf