题目描述:给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。

方法1:动态规划

class Solution {
public:
    vector<vector<int>> generate(int numRows) {
        if(numRows == 1) return {{1}};
        if(numRows == 2) return {{1},{1,1}};
        vector<vector<int>> temp;//结果数组
        temp.push_back({1});
        temp.push_back({1,1});//前两行不需要计算
        for(int i=2;i<numRows;i++){//从第三行开始动态规划
            vector<int> a;
            a.push_back(1);
            for(int j=0;j<=i-2;j++){
                a.push_back(temp[i-1][j] + temp[i-1][j+1]);
            }
            a.push_back(1);
            temp.push_back(a);
        }
        return temp;
    }
};