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

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]
相关推荐
shelly聊外贸8 小时前
WhatsApp 聊天记录如何导出为 CSV?使用 Python 进行数据分析
开发语言·python·数据分析
番茄味城市甜菜8 小时前
数据结构:双向链表实现,链表与顺序表的对比
数据结构·链表
怕浪猫8 小时前
Super-agent 在各大模型厂商的应用情况
算法·面试·github
I Am a robert girl8 小时前
从 FlowAct-R2 拆解“会说话的数字人“:流式多模态参考与主动式 Agent 规划
python·数字人·多模态大模型·扩散transformer·流式生成·agent规划
海绵宝宝转agent9 小时前
LeetCode100 二叉树个人题解
算法·leetcode·深度优先
octopus_c9 小时前
C++ 模板详解:函数模板、类模板、特化与分离编译
开发语言·c++·算法
東隅已逝,桑榆非晚9 小时前
算法1. 双指针法-移动零
c++·算法
梯度下降者9 小时前
Python使用统计建模解决业务预测问题的常见操作步骤【教程】
python·可解释性·数据清洗·模型选择·业务预测
CQU_JIAKE10 小时前
11.1[A]
算法
文丑颜不良啊10 小时前
LeetCode1581~1600题目解析
java·leetcode