62. 不同路径

题意

一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。

机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。

问总共有多少条不同的路径?

示例 1:


输入:m = 3, n = 7
输出:28
示例 2:

输入:m = 3, n = 2
输出:3
解释:
从左上角开始,总共有 3 条路径可以到达右下角。

  1. 向右 -> 向下 -> 向下
  2. 向下 -> 向下 -> 向右
  3. 向下 -> 向右 -> 向下
    示例 3:

输入:m = 7, n = 3
输出:28
示例 4:

输入:m = 3, n = 3
输出:6

提示:
1 <= m, n <= 100
题目数据保证答案小于等于 2 * 109

题解

动态规划思路,用一个二维数组记录每个位置的路径数,转换方程式如下:
data[i][0] = 1
data[0][j] = 1
data[i][j] = data[i-1][j-1]

class Solution {
    public int uniquePaths(int m, int n) {
        if (m <= 0 || n <= 0) {
            return 0;
        }
        int[][] data = new int[m][n];
        for (int i = 0; i < m; i++) {
            data[i][0] = 1;
        }
        for (int i = 0; i < n; i++) {
            data[0][i] = 1;
        }
        for (int i = 1; i < m; i++) {
            for (int j = 1; j < n; j++) {
                data[i][j] = data[i-1][j] + data[i][j-1];
            }
        }
        return data[m-1][n-1];
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 题目链接难度:中等 类型: 动态规划 一个机器人位于一个 m x n 网格的左上角 (起始点在...
    wzNote阅读 5,914评论 0 1
  • 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向...
    小月亮等风来阅读 851评论 0 0
  • 【Description】 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )...
    Chiduru阅读 2,773评论 0 0
  • 一个机器人位于一个 *m x n *网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者...
    genggejianyi阅读 812评论 0 0
  • 62. 不同路径 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每...
    pao哥阅读 1,105评论 0 1