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];
    }
};
相关推荐
赴生-4 分钟前
C++进阶 C++11(下)
开发语言·c++
有点。8 分钟前
C++(贪心算法一)
c++·贪心算法
Matrix_1116 分钟前
手机里的计算摄影:广角形变校正算法
人工智能·算法·智能手机·计算摄影
WBluuue21 分钟前
数据结构与算法:有序表(二):跳表
数据结构·c++·算法·skiplist
赴生-1 小时前
C++进阶 异常
开发语言·c++
x138702859572 小时前
c语言中srtlen(指针使用计算字符长度)、传值和传址调用
c语言·开发语言·算法·visual studio
海兰2 小时前
【实用程序】电商销售分析仪表盘 — 从零搭建一个AI参与的全栈数据洞察系统
人工智能·学习·算法
凡人叶枫2 小时前
Effective C++ 条款28:避免使用 handles 指向对象内部
linux·服务器·开发语言·c++·嵌入式开发
zwenqiyu2 小时前
P5283 [十二省联考 2019] 异或粽子题解
c++·学习·算法
wayz112 小时前
Momentum:TSI(真实强度指数)技术指标详解
算法·金融·数据分析·量化交易·特征工程