1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| class Solution { public int minimumTotal(List<List<Integer>> triangle) { return goDown(triangle, 0, 0, 0, Integer.MAX_VALUE); }
private int goDown(List<List<Integer>> triangle, int row, int col, int sum, Integer ans) { if (row == triangle.size() - 1) { sum += triangle.get(row).get(col); ans = Math.min(ans, sum); return ans; } int a = goDown(triangle, row + 1, col, sum + triangle.get(row).get(col), ans); int b = goDown(triangle, row + 1, col + 1, sum + triangle.get(row).get(col), ans); return Math.min(a, b); } }
|