不同路径—leetcode62
一个机器人位于一个 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相关推荐
- 招银网络科技提前批笔试
选择题 编程题 有一个m*n的网格,小A位于网格的左上角(0,0),每次只能向下或向右移动一步,请编程求小A到达网格右下角(m-1,n-1)共有多少条路径 leetcode62 学校举行运动会,使用3 ...
- leetcode62 不同路径
题目如下 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为"Start" ).机器人每次只能向下或者向右移动一步.机器人试图达到网格的右下角(在下图中标记为&q ...
- leetcode62. 不同路径
一:题目 二:上码 class Solution {public:/**思路:1.分析题意:2.动态规划五步走:1>:确定dp数组和其下标的含义dp[i][j]为到达二维数组下标为i,j的路径条 ...
- LeetCode--62.不同路径(排列组合,动态规划)
不同路径(排列组合,动态规划) 1. 题目描述 2. 题目分析 3. C语言实现 3.1 动态规划 3.2 排列组合 1. 题目描述 难度:中等 2. 题目分析 这是一道典型的动态规划问题,这道题有两 ...
- 20200218:不同路径(leetcode62)
不同路径 题目 思路与算法 代码实现 题目 纠正题目的一点小错误,按照题意应该指的是m行n列,所以下面这个图的表述有点问题. 思路与算法 单纯计算的话,高中概率方面的题,排列组合知识就可以解决. 不依 ...
- LeetCode62. 不同路径(java解法——动态规划)
1 题目描述 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 "Start" ).机器人每次只能向下或者向右移动一步.机器人试图达到网格的右下角(在下图中标记 ...
- 伍六七带你学算法 动态规划 ——不同路径
力扣 62. 不同路径 难度 中等 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为"Start" ). 机器人每次只能向下或者向右移动一步.机器人试图达到网格 ...
- Go 语言同一个包内函数调用、包名和实际路径最后一个目录不一致问题
以下代码的 GOPATH 路径为 "/home/wohu/GoCode" 1. 同一个包内的函数可以相互调用 代码结构如下: wohu@wohu:~/GoCode/src$ tre ...
- Python 标准库之 os (获取当前目录、读取/设置环境变量、重命名文件、运行shell命令、创建/删除/查看目录文件、判断目录/文件/存在、获取绝对路径、获取文件名、获取换行符、获取路径分隔符)
1. os与sys模块的官方解释如下: os This module provides a portable way of using operating system dependent funct ...
最新文章
- VM 与容器之争!Docker赢了!
- Windows下将MySQL5.5升级为MySQL5.7
- 听说你想去大厂看妹子,带你看看字节跳动实习算法岗面试长啥样?
- 【PAT乙级】1009 说反话 (20 分)
- Android 开发笔记___初级控件之实战__计算器
- fdtd中时间监视器怎么放_利用FDTD软件仿真拓扑光子(六)-单向传播仿真与软件设置...
- Hadoop2.x环境搭建
- java多线程正在旋转的_一个正在高速旋转的巨大黑洞:速度竟达到光速的一半!...
- Material Design 控件知识梳理(4) FloatingActionButton
- 【April Fools Day Contest 2014F】【愚人节脑洞 OEIS大法】000001 输出序列某一项
- 《移动端UI框架》Vant
- qlabel显示两行_PyQt5 系统化学习: QLabel
- 无法确认设备和计算机之间的连接,如何解决“爱思助手”无法识别设备或连接超时等故障?...
- 利用jink的驱动软件j-flash 合并两个hex的方法,bootloader+app -(转载)
- TQ2440开发板学习纪实(4)--- 初始化片外RAM,让程序有更大内存空间
- 移动硬盘无法读取是怎么回事?
- 深度学习基础--SOFTMAX回归(单层神经网络)
- npm和nrm常用命令
- 22-09-02 西安 JVM 类加载器、栈、堆体系、堆参数调优、GC垃圾判定、垃圾回收算法、对象的finalize机制
- mysql动态规划_关于动态规划的描述,不正确的是( )
热门文章
- 最短路径Dijkstra(静态邻接表+优先队列模板)+ 记忆化搜索
- getchar、scanf以及缓冲区的概念
- 数据结构课程设计---最长公共子串
- paramiko 使用总结(SSH 操作远端机器)
- ?类型 ,?类型(值)
- scrapy two
- uva 11367 (Dijkstra+DP)
- (转)解决fasterxml中string字符串转对象json格式错误问题(无引号 单引号问题)...
- Android学习之图片压缩,压缩程度高且失真度小
- Android软件开发之盘点自定义View界面大合集(二)