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] ]
此题和Pascal's TriangleⅡ类型一样,不同的是那道题只需返回一层的向量,而此题要返回k层之前所有层的向量。可以调用
那道题的函数来很容易实现此题的解法:
class Solution {
public:
vector<vector<int> > generate(int numRows) {
vector<vector<int>> result;
for(int i = 0; i < numRows; i++)
{
vector<int> temp;
temp = getRow(i);
result.push_back(temp);
}
return result;
}
vector<int> getRow(int rowIndex) {
vector<int> temp(rowIndex+1);
temp[0] = 1;
for(int i = 1; i <= rowIndex; i++)
{
for(int j = i; j >= 0; j--)
{
if(j == i)
{
temp[j] = temp[j-1];
}
else if(j == 0)
{
temp[j] = temp[j];
}
else
temp[j] = temp[j] + temp[j-1];
}
}
return temp;
}
};
运行时间排名靠前,多亏上道题的解法!