【DP】120. 三角形最小路径和
题目:

解答:
方法一:递归 + 记忆化
class Solution { Integer[][] memo; public int minimumTotal(List<List<Integer>> triangle) { memo = new Integer[triangle.size()][triangle.size()]; return dfs(triangle, 0, 0); } private int dfs(List<List<Integer>> triangle, int i, int j) { if (i == triangle.size()) { return 0; } if (memo[i][j] != null) { return memo[i][j]; } return memo[i][j] = Math.min(dfs(triangle, i + 1, j), dfs(triangle, i + 1, j + 1)) + triangle.get(i).get(j); } }

浙公网安备 33010602011771号