118. Pascal's Triangle

来源:互联网 发布:手机淘宝抢购要刷新吗 编辑:程序博客网 时间:2024/05/29 18:26

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;    }};
0 0