Skip to content

118. Pascals Triangle

Difficulty: Easy

LeetCode Problem View on GitHub


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

Example 2:

Input: numRows = 1
Output: [[1]]

 

Constraints:

  • 1 <= numRows <= 30

Solution

class Solution {
    public List<List<Integer>> generate(int numRows) {
        List<List<Integer>> ans = new ArrayList<>();
        List<Integer> temp = null;
        for (int i=0; i< numRows; i++) {
            List<Integer> row = new ArrayList<>();
            for (int j = 0;j <= i; j++) {
                if (j == 0 ||j == i){
                    row.add(1);
                }
                else {
                    row.add(temp.get(j - 1) + temp.get(j));
                }
            }
            temp = row;
            ans.add(row);
        }
        return ans;
    }
}

Complexity Analysis

  • Time Complexity: O(?)
  • Space Complexity: O(?)

Approach

Detailed explanation of the approach will be added here