File tree 1 file changed +52
-0
lines changed
src/main/java/com/leetcode/arrays
1 file changed +52
-0
lines changed Original file line number Diff line number Diff line change
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
+ }
You can’t perform that action at this time.
0 commit comments