Pascal's triangle

Given a non-negative integer numRows, generate the first numRows of Pascal's triangle.

In Pascal's triangle, each number is the sum of the two numbers directly above it.

Example:

Input: 5 Output: [ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ]

Solution:

vector<vector<int>> generate(int numRows) {
    if (numRows <= 0) return {};

    vector<vector<int>> ans;
    ans.push_back({1});
    for (int i=1; i<numRows; i++) {
        vector<int> row;
        for (int j=0; j<=i; j++) {
            if (j == 0 || j == i) {
                row.push_back(1);  
            } else {
                vector<int> prevRow = ans.back();
                row.push_back(prevRow[j-1] + prevRow[j]);
            }
        }
        ans.push_back(row);
    }

    return ans;
}

results matching ""

    No results matching ""