package com.interview.algorithms.array; import java.util.List; /** * Created_By: stefanie * Date: 14-11-6 * Time: 下午6:01 */ public class C4_75_TriangleMinPath { public static int minPath(List<List<Integer>> triangle) { if(triangle.size() == 0) return 0; int[] path = new int[triangle.size()]; path[0] = triangle.get(0).get(0); for(int row = 1; row < triangle.size(); row++){ List<Integer> layer = triangle.get(row); int prev = path[0]; for(int col = 0; col <= row; col++){ if(col == 0 || col == row) path[col] = prev + layer.get(col); else { int current = path[col]; path[col] = Math.min(prev, current) + layer.get(col); prev = current; } } } int min = path[0]; for(int i = 1; i < path.length; i++){ if(path[i] < min) min = path[i]; } return min; } }