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
}
相关推荐
木井巳9 小时前
【递归算法】单词搜索
java·算法·leetcode·决策树·深度优先
Chase_______10 小时前
LeetCode 2461 & 1423:定长滑窗变体精讲,从 HashMap 判重到正难则反的转化技巧
算法·leetcode·职场和发展
sheeta199811 小时前
LeetCode 每日一题笔记 日期:2026.05.07 题目:3660. 找到所有可以到达的最大值
笔记·算法·leetcode
Hesionberger12 小时前
LeetCode79:单词搜索DFS回溯详解
java·开发语言·c++·python·算法·leetcode·c#
米粒113 小时前
力扣算法刷题 Day 62 最短路算法
算法·leetcode·职场和发展
小雅痞13 小时前
[Java][Leetcode hard] 30. 串联所有单词的子串
java·leetcode
khalil102014 小时前
代码随想录算法训练营Day-43 动态规划10 | 300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组
数据结构·c++·算法·leetcode·动态规划·子序列问题
风筝在晴天搁浅14 小时前
字节/蚂蚁/美团/拼多多 LeetCode 165.比较版本号
java·leetcode
悲伤小伞14 小时前
LeetCode 热题 100_3-128. 最长连续序列
c++·算法·leetcode·哈希算法
源图客14 小时前
Go语言goland代码编辑与调试
开发语言·后端·golang