1
1
package com .fishercoder .solutions ;
2
2
3
-
4
3
import java .util .ArrayList ;
5
4
import java .util .List ;
6
5
@@ -17,40 +16,40 @@ Could you optimize your algorithm to use only O(k) extra space?
17
16
18
17
public class _119 {
19
18
20
- public static class Solution1 {
21
- public List <Integer > getRow (int rowIndex ) {
22
- if (rowIndex < 0 ) {
23
- return new ArrayList ();
24
- }
25
- List <List <Integer >> result = new ArrayList ();
26
- List <Integer > row = new ArrayList ();
27
- row .add (1 );
28
- result .add (row );
29
- for (int i = 1 ; i <= rowIndex ; i ++) {
30
- List <Integer > newRow = new ArrayList ();
31
- newRow .add (1 );
32
- List <Integer > lastRow = result .get (i - 1 );
33
- for (int j = 1 ; j < lastRow .size (); j ++) {
34
- newRow .add (lastRow .get (j - 1 ) + lastRow .get (j ));
35
- }
36
- newRow .add (1 );
37
- result .add (newRow );
38
- }
39
- return result .get (result .size () - 1 );
19
+ public static class Solution1 {
20
+ public List <Integer > getRow (int rowIndex ) {
21
+ if (rowIndex < 0 ) {
22
+ return new ArrayList ();
23
+ }
24
+ List <List <Integer >> result = new ArrayList ();
25
+ List <Integer > row = new ArrayList ();
26
+ row .add (1 );
27
+ result .add (row );
28
+ for (int i = 1 ; i <= rowIndex ; i ++) {
29
+ List <Integer > newRow = new ArrayList ();
30
+ newRow .add (1 );
31
+ List <Integer > lastRow = result .get (i - 1 );
32
+ for (int j = 1 ; j < lastRow .size (); j ++) {
33
+ newRow .add (lastRow .get (j - 1 ) + lastRow .get (j ));
40
34
}
35
+ newRow .add (1 );
36
+ result .add (newRow );
37
+ }
38
+ return result .get (result .size () - 1 );
41
39
}
42
-
43
- public static class SolutionOkSpace {
44
- public List <Integer > getRow (int rowIndex ) {
45
- List <Integer > row = new ArrayList <>();
46
- for (int i = 0 ; i < rowIndex + 1 ; i ++) {
47
- row .add (0 , 1 );
48
- for (int j = 1 ; j < row .size () - 1 ; j ++) {
49
- row .set (j , row .get (j ) + row .get (j + 1 ));
50
- }
51
- }
52
- return row ;
40
+ }
41
+
42
+ public static class Solution2 {
43
+ /** O(k) space */
44
+ public List <Integer > getRow (int rowIndex ) {
45
+ List <Integer > row = new ArrayList <>();
46
+ for (int i = 0 ; i < rowIndex + 1 ; i ++) {
47
+ row .add (0 , 1 );
48
+ for (int j = 1 ; j < row .size () - 1 ; j ++) {
49
+ row .set (j , row .get (j ) + row .get (j + 1 ));
53
50
}
51
+ }
52
+ return row ;
54
53
}
55
-
54
+ }
56
55
}
0 commit comments