zoukankan      html  css  js  c++  java
  • 312. 戳气球

    class Solution:
        def maxCoins(self, nums: List[int]) -> int:
            # DP 因为dp[left][right] = argmax(dp[left][i]+dp[i][right]+left*i*right) 
            # 这个遍历顺序就是,先中间,后两边 所以将left,right都指向最右,然后开始遍历
            l = len(nums)
            vals = [1]+nums+[1]
            # 注意初始化的意义是 在没有操作以前最大值为0
            dp = [[0]*(l+2) for _ in range(l+2)]
            # left right都是不取得,所以为了使得left,right中间有值, right至少=left+2
            # 1 3158 1 left 从5开始 right从1开始 k=[8]
            for left in range(l-1,-1,-1):
                for right in range(left+2,l+2):
                    for k in range(left+1,right):
                        dp[left][right] = max(dp[left][right], dp[left][k]+dp[k][right]+vals[left]*vals[right]*vals[k])
            return dp[0][-1]
    
    
    
    
    
    
    
    
    
    
            # 记忆化搜索,固定left 和 right, 遍历搜索 left*i*right+search(left,i)+search(i,right) 最大时的i值
            # 然后再固定 left,i; i,right 
            # 超时
            # @lru_cache(None)
            # def search_all(left,right):
            #     if left >= right-1: # left = 3 right = 4
            #         return 0
            #     res = 0
            #     for num in range(left+1,right):
            #         total = vals[left]*vals[num]*vals[right] + search_all(left,num)+search_all(num,right)
            #         res = max(res,total)                
            #     # print(res,maxNum)
            #     return res
            # vals = [1]+nums+[1]
            # return search_all(0,len(nums)+1)
            
    

      https://leetcode-cn.com/problems/burst-balloons/

  • 相关阅读:
    【数据大屏设计】有点意思
    MySQL环境搭建
    关于MySQL数据库
    zip-gzip-bzip2_压缩文件
    Linux的链接文件-ln命令
    电脑为什么越用越慢
    按下开机键,计算机背后的故事
    Windows最全快捷键
    环境搭建-VMware安装系统
    wee hours
  • 原文地址:https://www.cnblogs.com/ChevisZhang/p/14167985.html
Copyright © 2011-2022 走看看