Golang | Leetcode Golang题解之第312题戳气球

题目:

题解:

Go 复制代码
func maxCoins(nums []int) int {
    n := len(nums)
    rec := make([][]int, n + 2)
    for i := 0; i < n + 2; i++ {
        rec[i] = make([]int, n + 2)
    }
    val := make([]int, n + 2)
    val[0], val[n+1] = 1, 1
    for i := 1; i <= n; i++ {
        val[i] = nums[i-1]
    }
    for i := n - 1; i >= 0; i-- {
        for j := i + 2; j <= n + 1; j++ {
            for k := i + 1; k < j; k++ {
                sum := val[i] * val[k] * val[j]
                sum += rec[i][k] + rec[k][j]
                rec[i][j] = max(rec[i][j], sum)
            }
        }
    }
    return rec[0][n+1]
}

func max(x, y int) int {
    if x > y {
        return x
    }
    return y
}
相关推荐
小于负无穷4 小时前
Go 中 RPC 的使用教程
开发语言·后端·rpc·golang
鱼跃鹰飞4 小时前
Leetcode面试经典150题-739.每日温度
算法·leetcode·面试
Mopes__7 小时前
Python | Leetcode Python题解之第406题根据身高重建队列
python·leetcode·题解
子非鱼92112 小时前
【JavaScript】LeetCode:36-40
开发语言·javascript·leetcode
爱吃芝麻汤圆12 小时前
633. 平方数之和-LeetCode(C++)
c++·算法·leetcode
忍界英雄13 小时前
学习笔记-Golang中的Context
笔记·学习·golang
我爱豆子13 小时前
Leetcode Hot 100刷题记录 -Day14(矩阵置0)
java·算法·leetcode·矩阵
IT规划师15 小时前
LeetCode题集-4 - 寻找两个有序数组的中位数,图文并茂,六种解法,万字讲解
leetcode·中位数
程序猿练习生15 小时前
C++速通LeetCode简单第9题-二叉树的最大深度
c++·算法·leetcode
小陶 coding16 小时前
代码随想录刷题day32丨动态规划理论基础,509. 斐波那契数, 70. 爬楼梯, 746. 使用最小花费爬楼梯
java·数据结构·算法·leetcode·动态规划