All Downloads are FREE. Search and download functionalities are using the official Maven repository.

g0101_0200.s0118_pascals_triangle.Solution Maven / Gradle / Ivy

There is a newer version: 1.38
Show newest version
package g0101_0200.s0118_pascals_triangle;

// #Easy #Top_Interview_Questions #Array #Dynamic_Programming #Data_Structure_I_Day_4_Array
// #Dynamic_Programming_I_Day_12 #Udemy_Dynamic_Programming
// #2022_06_23_Time_1_ms_(67.08%)_Space_42.4_MB_(5.58%)

import java.util.ArrayList;
import java.util.List;

/**
 * 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:
 *
 * ![](https://upload.wikimedia.org/wikipedia/commons/0/0d/PascalTriangleAnimated2.gif)
 *
 * **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`
**/
@SuppressWarnings("java:S2589")
public class Solution {
    public List> generate(int numRows) {
        List> output = new ArrayList<>();
        for (int i = 0; i < numRows; i++) {
            List currRow = new ArrayList<>();
            for (int j = 0; j <= i; j++) {
                if (j == 0 || j == i || i <= 1) {
                    currRow.add(1);
                } else {
                    int currCell = output.get(i - 1).get(j - 1) + output.get(i - 1).get(j);
                    currRow.add(currCell);
                }
            }
            output.add(currRow);
        }
        return output;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy