Skip to content

Latest commit

 

History

History
44 lines (35 loc) · 1.18 KB

118.Pascal'sTriangle.md

File metadata and controls

44 lines (35 loc) · 1.18 KB

118. Pascal's Triangle

Easy

Given an integer numRows, return the first numRows of Pascal's triangle.

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

Example 1:

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

Approach: Constructed the tree iteratively in the most efficient way

class Solution {
public:
    vector<vector<int>> generate(int numRows) {
        vector<vector<int>> pascals_triangle;
        vector<int> current_level;
        if(numRows >= 1){
            current_level.push_back(1);
            pascals_triangle.push_back(current_level);
        }
        if(numRows >= 2){
            current_level.push_back(1);
            pascals_triangle.push_back(current_level);
        }
        for(int i = 3; i<=numRows; i++){
            current_level.clear();
            current_level.push_back(1);
            
            for(int j = 0; j<i-2; j++){
                current_level.push_back(pascals_triangle[i-2][j]+pascals_triangle[i-2][j+1]);
            }
            current_level.push_back(1);
            pascals_triangle.push_back(current_level);

        }
        return pascals_triangle;
    }
};