三角形求最小路径和(动态规划leetcode120)

2018-11-19  本文已影响0人  zhouwaiqiang

题目

分析&&解法

源代码实现

class Solution {
    public int minimumTotal(List<List<Integer>> triangle) {
        if (triangle == null) return 0;
        if (triangle.size() == 1) return triangle.get(0).get(0);
        int minTotal = Integer.MAX_VALUE;
        int[] aux = new int[triangle.size()];//声明一个辅助数组用于存储f[i][j]的数据
        for (int i=0; i<aux.length; i++) aux[i] = Integer.MAX_VALUE;
        aux[0] = triangle.get(0).get(0);
        for (int i = 1; i < triangle.size(); i++) {
            for (int j = triangle.get(i).size()-1; j >= 0; j--) {
                if(j != 0) aux[j] = Math.min(aux[j], aux[j-1]) + triangle.get(i).get(j);
                else aux[j] = aux[j] + triangle.get(i).get(j);
            }
        }
        for (int i = 0; i < aux.length; i++) minTotal = Math.min(aux[i], minTotal);
        return minTotal;
    }
}
上一篇 下一篇

猜你喜欢

热点阅读