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

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]
相关推荐
测试199823 分钟前
软件测试之压力测试
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·压力测试
Swizard26 分钟前
极限瘦身:将 Python AI 应用从 100MB 砍到 30MB
java·python·ai·移动开发
亮子AI28 分钟前
【Tiptap】如何使用 ordered list?
数据结构·list·tiptap
南莺莺31 分钟前
二叉排序树的创建和基本操作---C++实现
数据结构·c++·算法··二叉排序树
编织幻境的妖33 分钟前
Python代码性能优化工具与方法
开发语言·python·性能优化
仰泳的熊猫34 分钟前
1061 Dating
数据结构·c++·算法·pat考试
Fcy64834 分钟前
二叉搜索树(C++实现)
开发语言·数据结构·c++·二叉搜索树
CoderYanger38 分钟前
A.每日一题——1523. 在区间范围内统计奇数数目
java·数据结构·算法·leetcode·职场和发展
surtr11 小时前
Round 1019(div2) CD
数据结构·c++·算法·贪心算法·stl