第十五周OJ-Q118解题方法

来源:互联网 发布:淘宝在哪里搜索店铺号 编辑:程序博客网 时间:2024/04/29 12:26

问题:

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]]

这也是一个比较经典的问题了,其实就是做个二重循环,里边的array头尾同时向中间靠近,并且移动过程中递增,然后arry的大小,或者说头尾移动的次数就由一重循环里的变量,也就是它的深度决定。代码如下:


class Solution {
public:
    vector<vector<int>> generate(int numRows) {
        vector<vector<int>> r(numRows);
        for (int i = 0; i < numRows; i++) {
            r[i].resize(i + 1);
            r[i][0] = r[i][i] = 1;
   
            for (int j = 1; j < i; j++)
                r[i][j] = r[i - 1][j - 1] + r[i - 1][j];
        }
         
        return r;
    }
};


原创粉丝点击