Understand Program to create Pascal's Triangle Problem

Constructing Pascal's Triangle

Problem Description

Pascal's Triangle is a triangular array of numbers where:

  1. The first and last elements of each row are 1.
  2. Each intermediate element is the sum of the two numbers directly above it.

Given an integer numRows, construct Pascal's Triangle as a 2D array with exactly numRows rows. Each row should only contain the elements that belong to the triangle (no trailing zeros).


Objective

To construct a 2-dimensional array that represents Pascal's Triangle.


Steps

1. Initialize the 2D Array

  • Create a 2-dimensional array pascalTriangle of size numRows x numRows initialized with 0s.

2. Declare and Initialize Variables

  • Declare a variable cols and initialize it to 0. This variable will keep track of the number of columns in the current row.

3. Construct Pascal's Triangle

  • Use a for loop to iterate through each row (variable i from 0 to numRows - 1):
    • Increment cols by 1 for each new row.
    • Use a nested for loop to iterate through each column in the current row (variable j from 0 to cols - 1):
      • If j is 0 or j is cols - 1, assign the value 1 to pascalTriangle[i][j]. This handles the edges of the triangle.
      • Otherwise, set pascalTriangle[i][j] to the sum of the two numbers directly above it in the triangle (pascalTriangle[i-1][j-1] and pascalTriangle[i-1][j]).

4. Remove Extra Zeros

  • After constructing the triangle, remove all trailing zeros from each row to ensure the triangle has the correct shape.

Example Input and Output

Example 1

Input:
numRows = 5

Output:

[
  [1],
  [1, 1],
  [1, 2, 1],
  [1, 3, 3, 1],
  [1, 4, 6, 4, 1]
]
Category:
  • Array
  • Striver's SDE sheet
Programming Language:
  • Java
Reference Link:

https://leetcode.com/problems/pascals-triangle/description/

Java
Output:

Loading component...

Loading component...