Skip to content

Commit 3571327

Browse files
committed
Pascals triangle done
1 parent 1b3594f commit 3571327

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package com.leetcode.arrays;
2+
3+
import java.util.ArrayList;
4+
import java.util.List;
5+
6+
/**
7+
* Problem: https://leetcode.com/problems/pascals-triangle/
8+
*
9+
* @author rampatra
10+
* @since 2019-04-20
11+
*/
12+
public class PascalsTriangle {
13+
14+
/**
15+
* Time complexity: O(numRows^2)
16+
* Space complexity: O(numRows^2)
17+
* <p>
18+
* Runtime: <a href="https://leetcode.com/submissions/detail/223784377/">0 ms</a>.
19+
*
20+
* @param numRows
21+
* @return
22+
*/
23+
public static List<List<Integer>> generatePascalsTriangle(int numRows) {
24+
List<List<Integer>> pascalsTriangle = new ArrayList<>();
25+
26+
if (numRows == 0) return pascalsTriangle;
27+
28+
List<Integer> firstRow = new ArrayList<>();
29+
firstRow.add(1);
30+
pascalsTriangle.add(firstRow);
31+
32+
List<Integer> prevRow;
33+
for (int i = 1; i < numRows; i++) {
34+
prevRow = pascalsTriangle.get(i - 1);
35+
36+
List<Integer> currRow = new ArrayList<>();
37+
currRow.add(1);
38+
for (int j = 0; j < prevRow.size() - 1; j++) {
39+
currRow.add(prevRow.get(j) + prevRow.get(j + 1));
40+
}
41+
currRow.add(1);
42+
43+
pascalsTriangle.add(currRow);
44+
}
45+
46+
return pascalsTriangle;
47+
}
48+
49+
public static void main(String[] args) {
50+
System.out.println(generatePascalsTriangle(5));
51+
}
52+
}

0 commit comments

Comments
 (0)