题目描述:给定一个非负整数 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;
}
};