当前位置: 首页 > news >正文

Leecode hot100 - 279. 完全平方数

题目描述

279. 完全平方数 - 力扣(LeetCode)

给你一个整数 n ,返回 和为 n 的完全平方数的最少数量 。

完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,149 和 16 都是完全平方数,而 3 和 11 不是。

示例 1:

输入:n = 12
输出:3 
解释:12 = 4 + 4 + 4

示例 2:

输入:n = 13
输出:2
解释:13 = 4 + 9

思路

  1. 定义 dp 数组dp[i] 表示组成整数 i 所需的最少完全平方数的个数。

  2. 初始化

    • dp[0] = 0(0 无需任何数组成)。
    • 对 i ≥ 1,初始值设为 i(最坏情况:用 i 个 1 相加,因为 1 是完全平方数)。
  3. 状态转移:对每个 i,尝试所有可能的完全平方数 j 从 1 开始,且 j² ≤ i),将 i 拆分为 j² + (i - j²),则 dp[i] 取 “当前值” 与 “dp[i - j²] + 1” 的最小值(+1 表示加上  这个平方数)。

  4. 结果dp[n] 即为组成 n 的最少完全平方数个数。

代码

class Solution:
    def numSquares(self, n: int) -> int:
        dp = [0] * (n+1)
        dp[0] = 0
        for i in range(1, n+1):
            dp[i] = i
            j = 1
            while i - j*j >= 0:
                dp[i] = min(dp[i], dp[i - j*j] + 1)
                j+=1
        return dp[-1]

复杂度分析

时间复杂度为 `O(n√n)`
空间复杂度为 `O(n)`

http://www.dtcms.com/a/449662.html

相关文章:

  • 珠宝营销型网站设计珠海做网站及推广
  • 视频原创度检测算法对比
  • Spring MVC 九大组件源码深度剖析(九):FlashMapManager - 重定向数据的守护者
  • 网站设计上市公司继续浏览此网站(不推荐)
  • The “Launch” - 价值交付与灰度发布
  • 做网站公司(信科网络)网站开发外包报价
  • libopenssl1_0_0-1.0.2p-3.49.1.x86_64安装教程(RPM包手动安装步骤+依赖解决附安装包下载)
  • 有些人做网站不用钱的 对吗网站建设经典范例
  • C52-二级指针
  • 【微科普】PID 多久计算一次?(第四弹):嵌入式系统中 PID 控制周期的科学选择与实践
  • 目前流行的网站开发设计廊坊商昊网站建设
  • 《WSGI 到 ASGI:Python Web 架构的演进与桥梁之道》
  • 数据库完整指南:从基础到 Django 集成
  • 福建设计招聘网站seo sem什么意思
  • 用scala做的网站视频网址链接哪里找
  • 基于pyqt5实现的视频抽帧工具源码+项目说明用于目标检测图片采集
  • 浙江省建设局房管科网站建筑模板915 1830价格
  • 怎么做公司官方网站苏州教育网站建设
  • AI Agent:重塑未来智能的核心驱动力
  • node-red 采集CNC?
  • Linux驱动开发与BuildRoot是什么关系与其的应用场景
  • 如何自己做企业网站网站建设与开发的论文
  • Windows批处理进阶使用教程
  • 中秋佳节与 Java 的奇妙联想
  • 评委打分算法解析:从基础实现到性能优化(洛谷)
  • k8s中Pod和Node的故事(2):优先级、抢占和驱逐
  • 网站架构包含哪几部分苏州网站建设网站制作的公司
  • UML笔记 之 事物和关系
  • 中国黄金集团建设有限公司官方网站照片在线编辑
  • 从零开始学习Python Django:从环境搭建到第一个 Web 应用