Pascal's Triangle

118.Pascal’s Triangle

Given an integer numRows, return the first numRows of Pascal’s triangle.

In Pascal’s triangle, each number is the sum of the two numbers directly above it as shown:

Example 1:

1
2
Input: numRows = 5
Output: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]

Example 2:

1
2
Input: numRows = 1
Output: [[1]]

时间复杂度:O(numRows^2^)

空间复杂度:O(1)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Solution {
public:
vector<vector<int>> generate(int numRows) {
vector<vector<int>> ans_v(numRows);
for (int i = 0; i < numRows; ++i) {
ans_v[i].resize(i + 1);
ans_v[i][0] = 1;
ans_v[i][i] = 1;
for (int j = 1; j < i; ++j) {
ans_v[i][j] = ans_v[i - 1][j] + ans_v[i - 1][j - 1];
}
}
return ans_v;
}
};