Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solution {
- public:
- int dp[502][502];
- int maxCoins(vector<int>& nums) {
- int n = nums.size();
- memset(dp, 0, sizeof dp);
- nums.insert(nums.begin(), 1);
- nums.insert(nums.end(), 1);
- for(int len=1; len<=n; len++){
- for(int start=1; start<=n-len+1; start++){
- int end = start+len-1;
- int ans = INT_MIN;
- for(int mid=start; mid<=end; mid++){
- ans = max(ans, dp[start][mid-1]+dp[mid+1][end]+nums[mid]*nums[start-1]*nums[end+1]);
- }
- dp[start][end] = ans;
- }
- }
- return dp[1][n];
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement