Skip to content

Latest commit

 

History

History
19 lines (19 loc) · 730 Bytes

triangle.md

File metadata and controls

19 lines (19 loc) · 730 Bytes

triangle 这是一道Dp问题,这里采用的是从下往上数,每次都保存最小的,那么最后,最上面的那个一定是最短路径。

public int minimumTotal(List<List<Integer>> triangle) {
        int dp[] = new int[triangle.size()];
        if(triangle.size()==1){
            return triangle.get(0).get(0);
        }
        for(int i=0;i<triangle.get(triangle.size()-1).size();i++){
            dp[i] = triangle.get(triangle.size()-1).get(i);
        }
        for(int i=triangle.size()-2;i>=0;i--){
            for(int j=0;j<triangle.get(i).size();j++){
                dp[j] = Math.min(dp[j],dp[j+1])+triangle.get(i).get(j);
            }
        }
        return dp[0];
    }