Pascal's Triangle问题及解法

来源:互联网 发布:淘宝助手上传宝贝失败 编辑:程序博客网 时间:2024/05/16 16:03

问题描述:

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]]

问题分析:

可以发现其中有规律:从第三行开始,中间的元素都是上一行元素的和。


过程详见代码:

class Solution {public:    vector<vector<int>> generate(int numRows) {        vector<vector<int> > res;        if(numRows <= 0) return res;        vector<int> v1(1,1);        res.push_back(v1);        for(int i = 2;i <= numRows; i++)        {        vector<int> v;        v.push_back(1);        vector<int> last = res[i - 2];        for(int j = 0;j < i - 2; j++)        {        v.push_back(last[j] + last[j + 1]);}v.push_back(1);res.push_back(v);}return res;    }};


1 0