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

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

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

例如,上图是一个7 x 3 的网格。有多少可能的路径?

示例 1:

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

示例 2:

输入: m = 7, n = 3
输出: 28

提示:

1 <= m, n <= 100
题目数据保证答案小于等于 2 * 10 ^ 9

思路:动态规划解决,利用二位数组保存状态值,这道题子问题为:

dp[i][j] = dp[i-1][j]+dp[i][j-1]

机器人要到达 (i, j) 这个位置可以向下走或者向右走,所以有两种方式到达

一种是从 (i-1, j) 这个位置走一步到达

一种是从(i, j - 1) 这个位置走一步到达

因为是计算所有可能的步骤,所以是把所有可能走的路径都加起来,所以关系式是 dp[i] [j] = dp[i-1] [j] + dp[i] [j-1]。

class Solution {
public:int uniquePaths(int m, int n) {if(m<=0||n<=0)return 0;int** dp  = new int*[m];for(int i=0;i<m;++i){dp[i] = new int[n];}for(int i=0;i<m;++i){dp[i][0] = 1;}for(int j=0;j<n;++j){dp[0][j] = 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];}
};

不同路径—leetcode62相关推荐

  1. 招银网络科技提前批笔试

    选择题 编程题 有一个m*n的网格,小A位于网格的左上角(0,0),每次只能向下或向右移动一步,请编程求小A到达网格右下角(m-1,n-1)共有多少条路径 leetcode62 学校举行运动会,使用3 ...

  2. leetcode62 不同路径

    题目如下 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为"Start" ).机器人每次只能向下或者向右移动一步.机器人试图达到网格的右下角(在下图中标记为&q ...

  3. leetcode62. 不同路径

    一:题目 二:上码 class Solution {public:/**思路:1.分析题意:2.动态规划五步走:1>:确定dp数组和其下标的含义dp[i][j]为到达二维数组下标为i,j的路径条 ...

  4. LeetCode--62.不同路径(排列组合,动态规划)

    不同路径(排列组合,动态规划) 1. 题目描述 2. 题目分析 3. C语言实现 3.1 动态规划 3.2 排列组合 1. 题目描述 难度:中等 2. 题目分析 这是一道典型的动态规划问题,这道题有两 ...

  5. 20200218:不同路径(leetcode62)

    不同路径 题目 思路与算法 代码实现 题目 纠正题目的一点小错误,按照题意应该指的是m行n列,所以下面这个图的表述有点问题. 思路与算法 单纯计算的话,高中概率方面的题,排列组合知识就可以解决. 不依 ...

  6. LeetCode62. 不同路径(java解法——动态规划)

    1 题目描述 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 "Start" ).机器人每次只能向下或者向右移动一步.机器人试图达到网格的右下角(在下图中标记 ...

  7. 伍六七带你学算法 动态规划 ——不同路径

    力扣 62. 不同路径 难度 中等 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为"Start" ). 机器人每次只能向下或者向右移动一步.机器人试图达到网格 ...

  8. Go 语言同一个包内函数调用、包名和实际路径最后一个目录不一致问题

    以下代码的 GOPATH 路径为 "/home/wohu/GoCode" 1. 同一个包内的函数可以相互调用 代码结构如下: wohu@wohu:~/GoCode/src$ tre ...

  9. Python 标准库之 os (获取当前目录、读取/设置环境变量、重命名文件、运行shell命令、创建/删除/查看目录文件、判断目录/文件/存在、获取绝对路径、获取文件名、获取换行符、获取路径分隔符)

    1. os与sys模块的官方解释如下: os This module provides a portable way of using operating system dependent funct ...

最新文章

  1. VM 与容器之争!Docker赢了!
  2. Windows下将MySQL5.5升级为MySQL5.7
  3. 听说你想去大厂看妹子,带你看看字节跳动实习算法岗面试长啥样?
  4. 【PAT乙级】1009 说反话 (20 分)
  5. Android 开发笔记___初级控件之实战__计算器
  6. fdtd中时间监视器怎么放_利用FDTD软件仿真拓扑光子(六)-单向传播仿真与软件设置...
  7. Hadoop2.x环境搭建
  8. java多线程正在旋转的_一个正在高速旋转的巨大黑洞:速度竟达到光速的一半!...
  9. Material Design 控件知识梳理(4) FloatingActionButton
  10. 【April Fools Day Contest 2014F】【愚人节脑洞 OEIS大法】000001 输出序列某一项
  11. 《移动端UI框架》Vant
  12. qlabel显示两行_PyQt5 系统化学习: QLabel
  13. 无法确认设备和计算机之间的连接,如何解决“爱思助手”无法识别设备或连接超时等故障?...
  14. 利用jink的驱动软件j-flash 合并两个hex的方法,bootloader+app -(转载)
  15. TQ2440开发板学习纪实(4)--- 初始化片外RAM,让程序有更大内存空间
  16. 移动硬盘无法读取是怎么回事?
  17. 深度学习基础--SOFTMAX回归(单层神经网络)
  18. npm和nrm常用命令
  19. 22-09-02 西安 JVM 类加载器、栈、堆体系、堆参数调优、GC垃圾判定、垃圾回收算法、对象的finalize机制
  20. mysql动态规划_关于动态规划的描述,不正确的是( )

热门文章

  1. 最短路径Dijkstra(静态邻接表+优先队列模板)+ 记忆化搜索
  2. getchar、scanf以及缓冲区的概念
  3. 数据结构课程设计---最长公共子串
  4. paramiko 使用总结(SSH 操作远端机器)
  5. ?类型 ,?类型(值)
  6. scrapy two
  7. uva 11367 (Dijkstra+DP)
  8. (转)解决fasterxml中string字符串转对象json格式错误问题(无引号 单引号问题)...
  9. Android学习之图片压缩,压缩程度高且失真度小
  10. Android软件开发之盘点自定义View界面大合集(二)