LeetCode热题 不同路径

题目描述

一个机器人位于一个 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∗1092 * 10^92∗109

思路

典型动态规划模板,dpi\[\[j表示到达这个点的路径数,则dpij = dpi - 1j + dpij - 1。

代码

cpp 复制代码
class Solution {
public:
    int uniquePaths(int m, int n) {
        vector<vector<int>>dp(m + 1, vector<int>(n + 1, 0));
        dp[1][1] = 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][n];
    }
};
相关推荐
其实防守也摸鱼2 小时前
个人学习 Pwn 思路:从基础到漏洞利用的进阶路径
大数据·前端·人工智能·chrome·算法·安全·网络安全
今天要早睡_2 小时前
C++01_入门基础复习
开发语言·c++
Nuanyt2 小时前
LeetCode Hot 100 链表专题(五)· 2 题(Java)
java·算法·leetcode·链表
Fuyo_11195 小时前
C++ 运行时多态与虚函数机制全面剖析【面试重点】
开发语言·c++·面试
w_zero_one5 小时前
递归算法(一)
java·开发语言·算法
圣保罗的大教堂5 小时前
leetcode 3736. 最小操作次数使数组元素相等 III 简单
leetcode
文丑颜不良啊6 小时前
LeetCode1881~1990题目解析
java·leetcode
Chen_harmony6 小时前
七、STL与string类
开发语言·c++
xxxiugou1237 小时前
C++命名空间与引用全解析
开发语言·c++