Leetcode62:不同路径(动态规划);Leetcode64:最小路径和(动态规划)

62:

 

 

来源:

重点:

  类似这种只问有多少种方案,而不问具体方案是什么时,常用动态规划。

动态规划,数组dp[m][n]为状态数组,表示到达(m-1,,n-1)点的路径数量

class Solution {
    public int uniquePaths(int m, int n) {
        int[][] dp = new int[m][n];
        for(int i = 0; i<m; i++){
            for(int j= 0; j<n; j++){
                if(i==0 || j==0){
                    dp[i][j] = 1;
                }else{
                    dp[i][j] = dp[i-1][j]+dp[i][j-1];
                }

            }
        }
        return dp[m-1][n-1];
    }
}

 


64:

 

 

来源:

 1 class Solution {
 2     public int minPathSum(int[][] grid) {
 3         int m = grid.length;
 4         int n = grid[0].length;
 5         int[][] dp = new int[m][n];
 6         dp[0][0]=grid[0][0];
 7 
 8         for(int j = 1;j<n;j++){
 9             dp[0][j]=grid[0][j]+dp[0][j-1];
10         }
11 
12         for(int i = 1; i<m; i++){
13             dp[i][0]=grid[i][0]+dp[i-1][0];
14         }
15 
16         for(int i = 1; i<m;i++){
17             for(int j = 1; j<n; j++){
18                 dp[i][j] = Math.min(grid[i][j]+dp[i-1][j],grid[i][j]+dp[i][j-1]);
19             }
20         }
21         return dp[m-1][n-1];
22     }
23 }

 

posted @ 2021-11-15 21:38  一半知半  阅读(15)  评论(0)    收藏  举报