给定一个非负整数 *numRows,*生成「杨辉三角」的前 numRows 行。

在**「杨辉三角」**中,每个数是它左上方和右上方的数的和。

示例 1:

输入: numRows = 5
输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]

示例 2:

输入: numRows = 1
输出: [[1]]

提示:

1 <= numRows <= 30

直接模拟就可以

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Solution {
public:
vector<vector<int>> ans;
vector<vector<int>> generate(int numRows) {
ans.push_back({1});
for (int j = 1; j < numRows; j++) {
vector<int> mid;
for (int i = 0; i <= j; i++) {
if (i == 0 || i == j) {
mid.push_back(1);
} else {
mid.push_back(ans[j - 1][i - 1] + ans[j - 1][i]);
}
}
ans.push_back(mid);
}
return ans;
}
};