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>> ret;
if(numRows==0)
{
return ret;
}
vector<int> last(1,1);
ret.push_back(last);
for(int i=2;i<=numRows;i++)
{
last.push_back(0);
vector<int> tmp=last;
for(int j=1;j<i;j++)
{
tmp[j]=last[j-1]+last[j];
}
ret.push_back(tmp);
last=tmp;
}
return ret;
}
};