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

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]
相关推荐
likerhood几秒前
Java实现选择题选项乱序算法
java·开发语言·算法
Captain_Data6 分钟前
AI 12小时设计CPU完整解析:从219字到RISC-V内核的技术突破
人工智能·python·ai·大模型·芯片设计·risc-v
小鱼~~9 分钟前
最小二乘&均方误差MSE&平均绝对误差MAE
python·算法·机器学习
Jmayday10 分钟前
Pytorch:模型线性回归
pytorch·python·线性回归
数智化精益手记局11 分钟前
仓库安灯管理系统的异常响应机制:破解仓库安灯管理系统的跨部门协同难题
大数据·数据结构·人工智能·制造·精益工程
执于代码11 分钟前
python 环境知多少
开发语言·python
田梓燊20 分钟前
力扣:138.随机链表的复制
算法·leetcode·链表
不忘不弃26 分钟前
皇后摆放问题优化求解法
算法
王老师青少年编程32 分钟前
csp信奥赛C++高频考点专项训练之贪心算法 --【区间贪心】:线段覆盖
c++·算法·贪心·csp·信奥赛·区间贪心·线段覆盖
痴男本疒32 分钟前
从一道算法题发现的泛型问题
算法