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) * <p> * Runtime: <a href="https://leetcode.com/submissions/detail/223784377/">0 ms</a>. * * @param numRows * @return */ public static List<List<Integer>> generatePascalsTriangle(int numRows) { List<List<Integer>> pascalsTriangle = new ArrayList<>(); if (numRows == 0) return pascalsTriangle; List<Integer> firstRow = new ArrayList<>(); firstRow.add(1); pascalsTriangle.add(firstRow); List<Integer> prevRow; for (int i = 1; i < numRows; i++) { prevRow = pascalsTriangle.get(i - 1); List<Integer> 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)); } }