Pascal's Triangle问题及解法

问题描述:

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> generate(int numRows) {
        vector > res;
        if(numRows <= 0) return res;
        vector v1(1,1);
        res.push_back(v1);
        for(int i = 2;i <= numRows; i++)
        {
        	vector v;
        	v.push_back(1);
        	vector 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;
    }
};


你可能感兴趣的:(Pascal's Triangle问题及解法)