-
Notifications
You must be signed in to change notification settings - Fork 85
/
Copy pathSolution.java
35 lines (31 loc) · 1020 Bytes
/
Solution.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package g0101_0200.s0119_pascals_triangle_ii;
// #Easy #Array #Dynamic_Programming #Data_Structure_II_Day_3_Array #Dynamic_Programming_I_Day_12
// #Udemy_Dynamic_Programming #2022_06_23_Time_0_ms_(100.00%)_Space_41.5_MB_(70.65%)
import java.util.ArrayList;
import java.util.List;
public class Solution {
public List<Integer> getRow(int rowIndex) {
int[] buffer = new int[rowIndex + 1];
buffer[0] = 1;
computeRow(buffer, 1);
// Copy buffer to List of Integer.
List<Integer> ans = new ArrayList<>(buffer.length);
for (int j : buffer) {
ans.add(j);
}
return ans;
}
private void computeRow(int[] buffer, int k) {
if (k >= buffer.length) {
return;
}
int previous = buffer[0];
for (int i = 1; i < k; i++) {
int tmp = previous + buffer[i];
previous = buffer[i];
buffer[i] = tmp;
}
buffer[k] = 1;
computeRow(buffer, k + 1);
}
}