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

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]
相关推荐
Queenie_Charlie几秒前
和为k的连续区间
数据结构·c++·map
天才测试猿11 分钟前
Postman接口测试:如何导入swagger接口文档?
自动化测试·软件测试·python·测试工具·职场和发展·接口测试·postman
CoderYanger12 分钟前
动态规划算法-简单多状态dp问题:16.买卖股票的最佳时机含手续费
开发语言·算法·leetcode·动态规划·1024程序员节
计算机学姐20 分钟前
基于Python的校园美食推荐系统【2026最新】
开发语言·vue.js·后端·python·mysql·django·推荐算法
严文文-Chris26 分钟前
【半监督学习常见算法】
学习·算法·机器学习
爱学java的ptt34 分钟前
206反转链表
数据结构·链表
FPGA_无线通信35 分钟前
OFDM 同步设计(3)
算法·fpga开发
天天进步201536 分钟前
Python全栈实战:基于机器学习的用户行为分析系统
python
linzeyang38 分钟前
Advent of Code 2025 挑战全手写代码 Day 5 - 餐厅
后端·python
SHOJYS41 分钟前
离散化+二位前缀和的计数题 [USACO20DEC] Rectangular Pasture S
算法