问题描述:
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;
}
};