-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathprblm120.java
More file actions
40 lines (36 loc) · 1.35 KB
/
prblm120.java
File metadata and controls
40 lines (36 loc) · 1.35 KB
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
36
37
38
39
40
import java.util.*;
public class prblm120 {
public static void main(String[] args) {
int[][] triangle = {{2},{3,4},{6,5,7},{4,1,8,3}};
System.out.println(new prblm120().minimumTotal(new prblm120().toList(triangle)));
}
public int minimumTotal(List<List<Integer>> triangle) {
int[][] arr = new int[triangle.size() + 1][triangle.size() + 1];
for(int i = triangle.size() - 1; i >= 0; i--){
for(int j = 0; j <= i; j++){
arr[i][j] = Math.min(arr[i+1][j], arr[i+1][j+1]) + triangle.get(i).get(j);
}
}
return arr[0][0];
}
public int minimumTotal2(List<List<Integer>> triangle) {
int[] arr = new int[triangle.size() + 1];
for(int i = triangle.size() - 1; i >= 0; i--){
for(int j = 0; j <= i; j++){
arr[j] = Math.min(arr[j], arr[j+1]) + triangle.get(i).get(j);
}
}
return arr[0];
}
public List<List<Integer>> toList(int[][] triangle){
List<List<Integer>> listTriangle = new ArrayList<>();
for (int i = 0; i < triangle.length; i++) {
List<Integer> row = new ArrayList<>();
for (int j = 0; j < triangle[i].length; j++) {
row.add(triangle[i][j]);
}
listTriangle.add(row);
}
return listTriangle;
}
}