LeetCode 312. Burst Balloons(戳气球)

区间dp,i表示区间长度,j表示区间起始,k遍历区间内的任意一点
二位数组初始化为0卡了很久,对c的函数都不熟悉了,memset只能对一维指针使用,里面参数也要注意

class Solution {
public:
    int maxCoins(vector<int>& nums) {
        int* dpnums = new int[nums.size()+2];  
    dpnums[0] = 1;  
    dpnums[nums.size()+1] = 1;  
    for(int i=0, j=1; iint len=nums.size()+2;
    int** d=new int *[len];
    for(int i=0;inew int[len];memset(d[i],0,len*sizeof(int));}
    // memset(d,0,sizeof(d));

    for(int i=2;ifor(int j=0;j+ifor(int k=j+1;k// d[j][j+i]=dpnums[j]*dpnums[k]*dpnums[j+i];
            }
        }
    }
    // for(int i=0;i
    //  printf("\n");
    //  for(int i=0;i
    return d[0][len-1];
    }
};

你可能感兴趣的:(LeetCode 312. Burst Balloons(戳气球))