且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

leetCode 118. Pascal's Triangle 数组 (杨辉三角)

更新时间:2022-10-03 13:48:39

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