给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。

对行号和序号还是不熟悉,需要多练习,这个题目里行号从1开始计算会更方便些,这个和数组中从0开始计算有冲突,所以多花了点时间,具体代码如下;

class Solution {
public:
    vector<vector<int>> generate(int numRows) {
        vector<vector<int>> res;
        if (numRows == 0) {
            return res;
        }
        vector<int> first_row(1, 1);
        res.emplace_back(first_row);
        if (numRows == 1) {
            return res;
        }

        for (int i = 2; i <= numRows; i++) {
            vector<int> row_i(i, 1);
            for (int j=1; j<i-1; j++) {
                row_i[j] = res.back()[j] + res.back()[j-1];
            }
            res.emplace_back(row_i);
        }

        return res;
    }
};

  

原文地址:https://www.cnblogs.com/rulin/p/14091802.html