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

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]
相关推荐
晓窗科技7 小时前
口碑好的AI基座服务商
大数据·人工智能·python
和裕7 小时前
蜂窝板 vs 七层瓦楞重型纸箱:大件工业设备运输性能与成本全对比
大数据·运维·网络·人工智能·算法
小灰灰搞电子7 小时前
Python 信号量详解:并发控制实战
python·信号量
衡石科技7 小时前
Data_Agent记忆机制与经验复用衡石分析智能体会话记忆与长期学习技术解析
人工智能·科技·学习·算法·企业级bi
新时代牛马7 小时前
cyclictest 毛刺从哪来?从ftrace、latencytop、perf到IRQ/调度延迟定位
android·开发语言·python·kotlin
Dxy12393102168 小时前
Python如何结合AI解决数据分析问题
人工智能·python·数据分析
IvanCodes8 小时前
Python 基础语法(七):推导式与常见遍历写法
开发语言·python
wzdark8 小时前
基于矩阵的动态规划路径问题性能优化4
线性代数·矩阵·动态规划
Msshu1238 小时前
2~5串锂电快充优选|XSP36 Type‑C升压/升降压快充管理芯片
数据结构·随机森林·贪心算法·排序算法·线性回归·启发式算法
zhangzeyuaaa8 小时前
Python requests:raise_for_status() 与 4xx/5xx 异常层次详解
开发语言·python