前言
###我做這類文章一個重要的目的還是記錄自己的學習過程,我的解析也不會做的非常詳細,只會提供思路和一些關鍵點,力扣上的大佬們的題解質量是非常非常高滴!!!
習題
1.網格中的最小路徑代價
題目鏈接:2304. 網格中的最小路徑代價 - 力扣(LeetCode)
題面:
附上靈神代碼:?
class Solution {public int minPathCost(int[][] grid, int[][] moveCost) {int m = grid.length, n = grid[0].length;int[][] memo = new int[m][n];int ans = Integer.MAX_VALUE;for (int j = 0; j < n; j++) { // 枚舉起點ans = Math.min(ans, dfs(0, j, memo, grid, moveCost));}return ans;}private int dfs(int i, int j, int[][] memo, int[][] grid, int[][] moveCost) {if (i == grid.length - 1) { // 遞歸邊界return grid[i][j];}if (memo[i][j] != 0) { // 之前計算過return memo[i][j];}int res = Integer.MAX_VALUE;for (int k = 0; k < grid[0].length; k++) { // 移動到下一行的第 k 列res = Math.min(res, dfs(i + 1, k, memo, grid, moveCost) + moveCost[grid[i][j]][k]);}return memo[i][j] = res + grid[i][j]; // 記憶化}
}
后言
上面是動態規劃相關的習題,共勉