-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMinsum.java
47 lines (37 loc) · 1.17 KB
/
Minsum.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
36
37
38
39
40
41
42
43
44
45
46
47
package day4;
import java.util.*;;
public class Minsum {
public int minimumTotal(List<List<Integer>> triangle) {
int sum = 0;
int row = 1;
int column = 0;
return travel(triangle, sum, row, column) + triangle.get(0).get(0);
}
private int travel(List<List<Integer>> triangle, int sum, int row, int column) {
if (row == triangle.size())
return 0;
int min = Integer.MAX_VALUE;
for (int i = column; i < column + 2; ++i) {
min = Math.min(triangle.get(row).get(i), min);
}
sum = min + travel(triangle, sum, row + 1, column);
return sum;
}
public static void main(String[] args) {
List<List<Integer>> triangle = new ArrayList<>();
List<Integer> list = new ArrayList<>();
list.add(-1);
triangle.add(list);
list = new ArrayList<>();
list.add(2);
list.add(3);
triangle.add(list);
list = new ArrayList<>();
list.add(1);
list.add(-1);
list.add(-3);
triangle.add(list);
Minsum minsum = new Minsum();
System.out.println(minsum.minimumTotal(triangle));
}
}