Given numRows, generate the first numRows of Pascal’s triangle.
For example, given numRows = 5,
Return
[
[1],
[1,1],
[1,2,1],
[1,3,3,1],
[1,4,6,4,1]
]
思路:
首先定义一个二维的vector,也就是vector<vector<int>>
的res来存结果。
然后对每一行,也就是i
从零开始,i
满足小于numRows
,把每一行全部元素都填充成1
。
接着,再从每一行的第二个元素开始,res[i][j]
都用它的上一行的res[i - 1][j - 1] + res[i - 1][j]
来更新。
最后,返回结果res
这个二维vector
即可。
代码如下:
class Solution {
public:
vector<vector<int>> generate(int numRows) {
vector<vector<int>> res;
for(int i = 0; i < numRows; ++i){
res.push_back(vector<int>(i + 1, 1));
for(int j = 1; j < i; ++j){
res[i][j] = res[i - 1][j - 1] + res[i - 1][j];
}
}
return res;
}
};