zoukankan      html  css  js  c++  java
  • 312. Burst Balloons

    Given n balloons, indexed from 0 to n-1. Each balloon is painted with a number on it represented by array nums. You are asked to burst all the balloons. If the you burst balloon i you will get nums[left] * nums[i] * nums[right] coins. Here left and right are adjacent indices of i. After the burst, the left and right then becomes adjacent.

    Find the maximum coins you can collect by bursting the balloons wisely.

    Note:

    • You may imagine nums[-1] = nums[n] = 1. They are not real therefore you can not burst them.
    • 0 ≤ n ≤ 500, 0 ≤ nums[i] ≤ 100

    Example:

    Input: [3, 1, 5, 8]
    Output: 167
    Explanation:
    nums = [3,1,5,8] --> [3,5,8] --> [3,8] --> [8] --> []   coins = 3*1*5 + 3*5*8 + 1*3*8 + 1*8*1 = 167

    Approach #1: DP.[C++]

    class Solution {
    public:
        int maxCoins(vector<int>& nums) {
            int size = nums.size();
            vector<vector<int>> temp(size+2, vector<int>(size+2, 0));
            nums.insert(nums.begin(), 1);
            nums.push_back(1);
            for (int l = 1; l <= size; ++l) {
                for (int i = 1; i <= size-l+1; ++i) {
                    int j = i + l -1;
                    for (int k = i; k <= j; ++k) {
                        temp[i][j] = max(temp[i][j], temp[i][k-1] + nums[i-1] * nums[k] * nums[j+1] + temp[k+1][j]);
                    }
                }
            }
            return temp[1][size];
        }
    };
    

      

    Analysis:

    temp[i][j] = maxCoin(nums[i:j])

    ans = temp[1][n]

    temp[i][j] = max(temp[i][j], temp[i][k-1] + nums[i-1]*nums[k]*nums[j+1] + temp[k+1][j]);

    永远渴望,大智若愚(stay hungry, stay foolish)
  • 相关阅读:
    73. Set Matrix Zeroes
    289. Game of Live
    212. Word Search II
    79. Word Search
    142. Linked List Cycle II
    141. Linked List Cycle
    287. Find the Duplicate Number
    260. Single Number III
    137. Single Number II
    Oracle EBS中有关Form的触发器的执行顺序
  • 原文地址:https://www.cnblogs.com/h-hkai/p/10340001.html
Copyright © 2011-2022 走看看