118. 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] ]
题目大意:
输入行数,输出如上图所示的数组。(杨辉三角)
思路:
用双vector来处理当前行和下一行。
代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
class
Solution {
public
:
vector<vector<
int
>> generate(
int
numRows) {
vector<vector<
int
>> result;
if
(numRows == 0)
return
result;
vector<
int
> curVec;
vector<
int
> nextVec;
for
(
int
i = 0;i < numRows; i++)
{
for
(
int
j = 0;j<=i;j++)
{
if
(j == 0)
nextVec.push_back(1);
else
{
if
(j >= curVec.size())
nextVec.push_back(curVec[j-1]);
else
nextVec.push_back(curVec[j] + curVec[j-1]);
}
}
result.push_back(nextVec);
curVec.swap(nextVec);
nextVec.clear();
}
return
result;
}
};
|
本文转自313119992 51CTO博客,原文链接:http://blog.51cto.com/qiaopeng688/1837156