思路:
从下(倒数第二行)往上开始计算,找到最先和之后,每一行的值重新赋值,直到最顶层就是最小值了。
public int minimumTotal(List<List<Integer>> triangle) {
List<List<Integer>> ll = new ArrayList<>(triangle);
for (int i = triangle.size() - 2; i >= 0 ; i--) {
for (int j = 0; j < triangle.get(i).size(); j++) {
ll.get(i).set(j,ll.get(i).get(j) + Math.min(ll.get(i+1).get(j),ll.get(i+1).get(j+1)));
}
}
return ll.get(0).get(0);
}