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

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]
相关推荐
可编程芯片开发20 分钟前
基于零极点配置的PID控制系统simulink建模与仿真
算法
Dxy123931021633 分钟前
Linux 编译安装 Python 3.12.10(多版本共存,不破坏系统Python)
linux·运维·python
徐小夕39 分钟前
开源!我用SQLite + DuckDB打造了一款可视化AI问数平台
前端·算法·github
Hrain-AI1 小时前
2026 企业 AI 智能体平台横评:8 大主流平台 7 维度实测对比
人工智能·算法·机器学习
持敬chijing2 小时前
Python概述
开发语言·python
Angel Q.2 小时前
因子分析和生成模型有什么关系?从“幕后因素”到“生成数据”
算法
FBI HackerHarry浩3 小时前
AI大模型开发V2第四阶段线性回归
人工智能·算法·线性回归
赤羽尾风3 小时前
NumPy快速入门
python·numpy