困难 Leetcode 312. 戳气球 区间dp/记忆化搜索

描述

有 n 个气球,编号为0 到 n - 1,每个气球上都标有一个数字,这些数字存在数组 nums 中。

现在要求你戳破所有的气球。戳破第 i 个气球,你可以获得 nums[i - 1] * nums[i] * nums[i + 1] 枚硬币。 这里的 i - 1 和 i + 1 代表和 i 相邻的两个气球的序号。如果 i - 1或 i + 1 超出了数组的边界,那么就当它是一个数字为 1 的气球。

求所能获得硬币的最大数量。

示例 1:
输入:nums = [3,1,5,8]
输出:167
解释:
nums = [3,1,5,8] --> [3,5,8] --> [3,8] --> [8] --> []
coins = 315 + 358 + 138 + 181 = 167

示例 2:
输入:nums = [1,5]
输出:10

思路

不要想先戳哪个,想最后戳的是哪个。
或者这个场景可以等效为逆序场景:向槽位中添加气球,添加一个就加一次分数。
想法过于精妙,看代码懂的都懂。

启发:一开始自己总想着进行某些数学证明,看来做编程题最好还是不要往这方向去钻

代码

不多说直接看懂

class Solution:
    def maxCoins(self, nums: List[int]) -> int:
        n=len(nums)
        self.nums = [1]+nums+[1]

        return self.dfs(1,n)
    
    @cache
    def dfs(self,i,j):
        if i>j:
            return 0
        return max( self.dfs(i,k-1)
                    +self.dfs(k+1,j)
                    +self.nums[i-1]*self.nums[k]*self.nums[j+1]
                    for k in range(i,j+1))

相关推荐

  1. 困难 Leetcode 312. 气球 区间dp/记忆搜索

    2024-06-10 22:40:05       35 阅读
  2. LeetCode-day07-312. 气球

    2024-06-10 22:40:05       26 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-10 22:40:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-10 22:40:05       101 阅读
  3. 在Django里面运行非项目文件

    2024-06-10 22:40:05       82 阅读
  4. Python语言-面向对象

    2024-06-10 22:40:05       91 阅读

热门阅读

  1. 力扣22. 括号生成

    2024-06-10 22:40:05       33 阅读
  2. Leetcode 3177. Find the Maximum Length of a Good Subsequence II

    2024-06-10 22:40:05       42 阅读
  3. 力扣1234.替换子串得到平衡字符串

    2024-06-10 22:40:05       19 阅读
  4. C# —— 二维数组

    2024-06-10 22:40:05       27 阅读
  5. c++外部模板

    2024-06-10 22:40:05       33 阅读
  6. linux 启动minio.rpm , minio服务启动

    2024-06-10 22:40:05       29 阅读
  7. linux 关于jq的安装和使用

    2024-06-10 22:40:05       33 阅读
  8. 网络流媒体协议——HLS协议

    2024-06-10 22:40:05       35 阅读
  9. 10进制与二、八、十六进制的转换

    2024-06-10 22:40:05       31 阅读
  10. 正排索引和倒排索引的区别

    2024-06-10 22:40:05       26 阅读
  11. Python运算符

    2024-06-10 22:40:05       29 阅读
  12. leetcode274H指数

    2024-06-10 22:40:05       30 阅读