g0101_0200.s0119_pascals_triangle_ii.Solution Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of leetcode-in-java Show documentation
Show all versions of leetcode-in-java Show documentation
Java-based LeetCode algorithm problem solutions, regularly updated
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 getRow(int rowIndex) {
int[] buffer = new int[rowIndex + 1];
buffer[0] = 1;
computeRow(buffer, 1);
// Copy buffer to List of Integer.
List 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);
}
}