Leetcode 279. 完全平方数

在这里插入图片描述

心路历程:

动态规划问题,建模为:
状态:当前要处理的整数
动作:选哪一个满足要求的完全平方数
返回值:和为当前整数的最少完全平方数

注意的点:

1、边界条件中需要去除x<0的时候的情况,可以用正无穷配合返回值的min去除
2、注意候选动作应该从1开始,而不是0

解法:动态规划

class Solution:
    def numSquares(self, n: int) -> int:
        @cache
        def dp(x):  # 和为x的完全平方数的最少个数
            if x < 0:
                return float('inf')
            if x == 0:
                return 0
            # 获取候选动作集合
            candicate = []
            for i in range(1, x+1):
                if i * i <= x: candicate.append(i * i)
                else: break
            res = []
            for action in candicate:
                res.append(1 + dp(x - action))
            return min(res)
        return dp(n)

相关推荐

  1. Leetcode279.完全平方

    2024-04-03 03:48:02       15 阅读
  2. LeetCode279 完全平方

    2024-04-03 03:48:02       14 阅读
  3. leetcode 279.完全平方

    2024-04-03 03:48:02       10 阅读
  4. 279. 完全平方

    2024-04-03 03:48:02       20 阅读
  5. 279. 完全平方

    2024-04-03 03:48:02       18 阅读
  6. leetcode279完全平方,动态规划解法

    2024-04-03 03:48:02       15 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-03 03:48:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-03 03:48:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-03 03:48:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-03 03:48:02       18 阅读

热门阅读

  1. LeetCode104.二叉树的最大深度

    2024-04-03 03:48:02       13 阅读
  2. mysql 存储过程示例

    2024-04-03 03:48:02       16 阅读
  3. 以下哪个变量不是指针类型

    2024-04-03 03:48:02       15 阅读
  4. LeetCode-41. 缺失的第一个正数【数组 哈希表】

    2024-04-03 03:48:02       16 阅读
  5. nginx输出日志配置与查看

    2024-04-03 03:48:02       15 阅读
  6. 论微服务架构及应用

    2024-04-03 03:48:02       14 阅读
  7. Memcached 教程之 Memcached replace 命令(七)

    2024-04-03 03:48:02       17 阅读
  8. 416. 分割等和子集(力扣LeetCode)

    2024-04-03 03:48:02       18 阅读
  9. 服务器配置Huggingface并git clone模型和文件

    2024-04-03 03:48:02       16 阅读
  10. 我国某高新技术企业遭境外黑客攻击

    2024-04-03 03:48:02       16 阅读
  11. 关于开源和闭源

    2024-04-03 03:48:02       16 阅读