class Solution {
public:
int maxCoins(vector<int>& nums) {
int n = nums.size();
vector<vector<int>> dp(n+2,vector<int> (n+2));
vector<int> val(n+2);
val[0] = val[n+1] = 1;
for(int i = 1; i <= n;i++){
val[i] = nums[i-1];
}
for(int j = 2;j <= n+1;j++){
for(int i = j-2;i >= 0;i--){
for(int k = i+1;k <= j-1;k++){
int sum = val[i] * val[k] * val[j] + dp[i][k] + dp[k][j];
if(dp[i][j] < sum) { dp[i][j] = sum; }
//dp[i][j] = max(dp[i][j],val[i] * val[k] * val[j] + dp[i][k] + dp[k][j]);
}
}
}
return dp[0][n+1];
}
};
戳气球
最新推荐文章于 2024-01-08 07:00:00 发布