题目:
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>> result;
if (numRows < 1)
{
return result;
}
vector<int> first;
first.push_back(1);
result.push_back(first);
if (numRows == 1)
{
return result;
}
vector<int> second;
second.push_back(1);
second.push_back(1);
result.push_back(second);
if (numRows == 2)
{
return result;
}
result.reserve(numRows);
for (size_t i = 2; i < numRows; i++)
{
vector<int> current;
current.push_back(1);
vector<int> previous(result.back());
for (size_t i = 1; i < previous.size(); i++)
{
current.push_back(previous[i - 1] + previous[i]);
}
current.push_back(1);
result.push_back(current);
}
return result;
}
};