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

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]
相关推荐
INGNIGHT14 分钟前
440 · 背包问题(三)(无限次数)
算法·leetcode·动态规划
suhan14 分钟前
【数据结构】七、查找:1.查找的概念、线性结构查找(顺序、折半(二分)、插值、稠密、分块、倒排)
数据结构·算法·排序算法
极客 - L U16 分钟前
卡尔曼滤波从零到精通
c语言·数据结构·单片机·嵌入式硬件·mcu
问心无愧051324 分钟前
[护网杯 2018]easy_tornado
python·tornado
全栈弄潮儿28 分钟前
Python实战第13期:模块与包
后端·python·编程语言
killerbasd1 小时前
总结 10.26
算法
深圳安锐科技有限公司1 小时前
从成像尺度到亚像素解算:变焦视觉位移监测如何让远近断面都稳
图像处理·人工智能·深度学习·算法·计算机视觉·系统架构·结构健康监测
2401_885885041 小时前
芬兰语音通知接口怎样对接?语音提醒接入流程
android·前端·python·php·语音识别
Dev _1 小时前
Python解释器安装在系统级目录导致命令行用户‌没有权限‌向该目录写入文件
开发语言·python
一只旭宝2 小时前
回调函数(Callback)
linux·服务器·算法