import java.util.*;
public class Solution {
public int minimumTotal(ArrayList<ArrayList<Integer>> triangle) {
if(triangle == null && 0 == triangle.size()){
return 0;
}
//---------为空则是返回
int row = triangle.size();//--------------------注意 size()返回的是个数 从1开始
int col = triangle.get(row-1).size();//---------注意 get()返回的是从下标从零开始的
int[] temp = new int[col];
for(int i = 0; i < col; i++ ){
temp[i] = triangle.get(row-1).get(i);
}//---------复制最后一行
for(int i = row-2; i >= 0; i--){
for(int j = 0; j <= i; j++){
temp[j] = triangle.get(i).get(j)+Math.min(temp[j],temp[j+1]);
}
}
//----------动态规划 自底向上进行计算
return temp[0];
}
}