Leetcode: 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<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;}
};