62. 不同路径(高频题)


62. 不同路径

解题思路

求最值问题,而且看得出来比较复杂的情况,直接动态规划

  1. dp[i][j]:到坐标(i,j)共有几条路径
  2. 那么结果就是dp[m-1][n-1]
  3. 因为只能向右或者向下移动,所以状态转移方程很容易写出来

在这里插入图片描述

代码

class Solution {
public int uniquePaths(int m, int n) {

        //dp[i][j]:到坐标(i,j)共有几条路径
        int[][] dp = new int[m][n];
        //第一列都是1
        for (int i = 0; i < m; i++) {
            dp[i][0] = 1;
        }
        //第一行都是1
        for (int i = 0; i < n; i++) {
            dp[0][i] = 1;
        }

        //这里是递推公式
        for (int i = 1; i < m; i++) {
            for (int j = 1; j < n; j++) {
                dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
            }
        }
        return dp[m - 1][n - 1];
    }
}

文章作者: fFee-ops
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 fFee-ops !
评论
  目录