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

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]
相关推荐
80530单词突击赢3 小时前
STLVector底层原理与高效运用
数据结构·算法
haluhalu.3 小时前
LeetCode---基础算法刷题指南
数据结构·算法·leetcode
iAkuya3 小时前
(leetcode)力扣100 58组合总和(回溯)
算法·leetcode·职场和发展
2401_838472513 小时前
使用Python处理计算机图形学(PIL/Pillow)
jvm·数据库·python
80530单词突击赢3 小时前
C++关联容器深度解析:set/map全攻略
java·数据结构·算法
m0_561359673 小时前
代码热更新技术
开发语言·c++·算法
深蓝电商API3 小时前
aiohttp爬取带登录态的异步请求
爬虫·python
rainbow68893 小时前
Python学生管理系统:JSON持久化实战
java·前端·python
咕噜咕噜啦啦3 小时前
ROS入门
linux·vscode·python