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

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]
相关推荐
for_ever_love__6 小时前
python爬虫: GET请求与POST请求
开发语言·爬虫·python·网络编程
张文君6 小时前
ubuntu26.04坏块分区隔离急速版
java·前端·python
positive_zpc6 小时前
进阶数据结构图——最小生成树(一)
数据结构·算法·图论
茉莉玫瑰花茶6 小时前
知识库的构建 [ 3 ]
开发语言·python
旧梦95276 小时前
Java 枚举类详解:从基础语法到高级用法
java·开发语言·python
yivifu6 小时前
查拼音程序升级版
开发语言·python
码完就睡7 小时前
数据结构——遍历二叉树
数据结构·算法
2601_962174177 小时前
Spring 核心技术解析【纯干货版】- XI:Spring 数据访问模块 Spring-Oxm 模块精讲
数据库·python·spring
evans在进步7 小时前
LeetCode 238 除自身以外数组的乘积:前缀积与后缀积详解
算法·leetcode·职场和发展
Brilliantwxx7 小时前
【C++】初入嵌入式C++复习-----经典面试题100道
开发语言·c++·算法·面试·职场和发展