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){
            for(int j= 0; 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){
 9             dp[0][j]=grid[0][j]+dp[0][j-1];
10         }
11 
12         for(int i = 1; i){
13             dp[i][0]=grid[i][0]+dp[i-1][0];
14         }
15 
16         for(int i = 1; i){
17             for(int j = 1; 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 }