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

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]
相关推荐
zzz_236820 小时前
【Java实习面试算法冲刺】图论
java·算法·面试
大鱼>20 小时前
宠物监控数据安全与隐私保护:端到端加密与合规实践
人工智能·深度学习·算法·iot·宠物
小猴子爱上树21 小时前
Temu批量视频翻译Python实现方案
开发语言·python·音视频
被自己蠢哭21 小时前
BFS广度优先搜索问题:#P00496. 华为od机试—自动泊车
算法
:-)21 小时前
分支限界算法
算法
X1A0RAN21 小时前
Python 并发请求性能优化实战
python·性能优化·并发编程
陈同学xxx21 小时前
Hermes Agent 接入飞书,在手机上随时聊天
linux·python·飞书
小肝一下21 小时前
2. 顺序表和链表
c语言·数据结构·c++·链表·dijkstra·依蕾娜·香香的依蕾娜
j7~21 小时前
【数据结构初阶】带头双向循环链表 (DSList) --增删查改完整实现详解
c语言·数据结构·链表·带头双向循环链表
卷无止境21 小时前
Python 中基于 Qt 的 GUI 库授权方式全解析
后端·python