import java.util.*;
public class Solution {
    public int minTrace (int[][] triangle) {
        //总结:使用到动态规划的思想
        //从倒数第二行向上遍历
        for(int i=triangle.length-2;i>=0;i--){
            //每行的长度就是该行索引加1
            for(int j=0;j<i+1;j++){
                //当前位置存当前数字加上下行相邻两节点中小的那个数
                triangle[i][j]=triangle[i+1][j]<triangle[i+1][j+1]?
                triangle[i+1][j]+triangle[i][j]:triangle[i+1][j+1]+triangle[i][j];
            }
        }
        return triangle[0][0];
    }
}