package com.leetcode.arrays; import java.util.ArrayList; import java.util.List; /** * Level: Easy * Problem: https://leetcode.com/problems/pascals-triangle/ * * @author rampatra * @since 2019-04-20 */ public class PascalsTriangle { /** * Time complexity: O(numRows^2) * Space complexity: O(numRows^2) *

* Runtime: 0 ms. * * @param numRows * @return */ public static List> generatePascalsTriangle(int numRows) { List> pascalsTriangle = new ArrayList<>(); if (numRows == 0) return pascalsTriangle; List firstRow = new ArrayList<>(); firstRow.add(1); pascalsTriangle.add(firstRow); List prevRow; for (int i = 1; i < numRows; i++) { prevRow = pascalsTriangle.get(i - 1); List currRow = new ArrayList<>(); currRow.add(1); for (int j = 0; j < prevRow.size() - 1; j++) { currRow.add(prevRow.get(j) + prevRow.get(j + 1)); } currRow.add(1); pascalsTriangle.add(currRow); } return pascalsTriangle; } public static void main(String[] args) { System.out.println(generatePascalsTriangle(5)); } }