6/01/2014

77. Triangle

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

没有评论:

发表评论