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

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]
相关推荐
ZTLJQ6 小时前
序列化的艺术:Python JSON处理完全解析
开发语言·python·json
2401_891482176 小时前
多平台UI框架C++开发
开发语言·c++·算法
H5css�海秀6 小时前
今天是自学大模型的第一天(sanjose)
后端·python·node.js·php
阿贵---6 小时前
使用XGBoost赢得Kaggle比赛
jvm·数据库·python
88号技师6 小时前
2026年3月中科院一区SCI-贝塞尔曲线优化算法Bezier curve-based optimization-附Matlab免费代码
开发语言·算法·matlab·优化算法
t198751286 小时前
三维点云最小二乘拟合MATLAB程序
开发语言·算法·matlab
无敌昊哥战神6 小时前
【LeetCode 257】二叉树的所有路径(回溯法/深度优先遍历)- Python/C/C++详细题解
c语言·c++·python·leetcode·深度优先
㓗冽7 小时前
8皇后·改-进阶题16
数据结构
x_xbx7 小时前
LeetCode:148. 排序链表
算法·leetcode·链表
Darkwanderor7 小时前
三分算法的简单应用
c++·算法·三分法·三分算法