当前位置:首页 > 编程笔记 > 正文
已解决

312.戳气球

来自网友在路上 167867提问 提问时间:2023-10-10 12:09:25阅读次数: 67

最佳答案 问答题库678位专家为你答疑解惑

在这里插入图片描述
在这里插入图片描述

  • 将戳气球转换到添加气球,记忆搜索
  • slove(i,j):在开区间(i,j)全部填满气球得到的最多硬币数,两端val[i]、val[j]

在这里插入图片描述

class Solution {
public:vector<vector<int>> ans;vector<int> val;int slove(int left,int right){if(left>=right-1) return 0;if(ans[left][right]!=-1) return ans[left][right];for(int i=left+1;i<right;i++){int sum=val[left]*val[i]*val[right];sum+=slove(left,i);sum+=slove(i,right);ans[left][right]=max(ans[left][right],sum);}return ans[left][right];}int maxCoins(vector<int>& nums) {int n=nums.size();val.resize(n+2);for(int i=1;i<=n;i++){val[i]=nums[i-1];}val[0]=val[n+1]=1;ans.resize(n+2,vector<int>(n+2,-1));return slove(0,n+1);}
};
查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"312.戳气球":http://eshow365.cn/6-18360-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!