Leetcode62 DP
Leetcode
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。
问总共有多少条不同的路径?
例如,上图是一个7 x 3 的网格。有多少可能的路径?
示例 1:
输入: m = 3, n = 2
输出: 3
解释:
从左上角开始,总共有 3 条路径可以到达右下角。
- 向右 -> 向右 -> 向下
- 向右 -> 向下 -> 向右
- 向下 -> 向右 -> 向右
示例 2:
输入: m = 7, n = 3
输出: 28
提示:
1 <= m, n <= 100
题目数据保证答案小于等于 2 * 10 ^ 9
代码
递归(超时)
class Solution {public:int uniquePaths(int m, int n) {if(m<=0 || n<=0) return 0;if(m==1||n==1) return 1;//最左边和最上边只有一种else return uniquePaths(m-1,n)+uniquePaths(m,n-1);}
};
有记忆性递归(AC)
class Solution {public:int f[101][101]={0};//放在外面初始化,类似于全局变量int uniquePaths(int m, int n) {if(m<=0 || n<=0) return 0;if(m==1||n==1) return 1;//最左边和最上边只有一种if(f[m][n]==0)//未计算过f[m][n]= uniquePaths(m-1,n)+uniquePaths(m,n-1);return f[m][n];}
};
注意
二维数组初始化,只能放在函数外面,相当于全局变量。放在函数里面会超时。
int f[101][101]={0};//放在外面初始化,类似于全局变量
int uniquePaths()
{
}
动态规划
分析
使用二维数组。注意初始化,对第一列和第一行进行赋值1(只有一种走法),之后通过二重循环进行递推。
class Solution {public:int uniquePaths(int m, int n) {int dp[101][101]={0};//动态申请二维数组for(int i=1;i<=n;i++)//第1行dp[1][i]=1;for(int i=1;i<=m;i++)//第1列dp[i][1]=1;for(int i=2;i<=m;i++)for(int j=2;j<=n;j++)dp[i][j]=dp[i-1][j]+dp[i][j-1];return dp[m][n];}
};
来源:力扣(LeetCode)
链接:点击https://leetcode-cn.com/problems/unique-paths
Leetcode62 DP相关推荐
- dp,sp,px相互转化
方法一: public int sp2px(float sp) {return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, ...
- [JS][dp]题解 | #打家劫舍(一)#
题解 | #打家劫舍(一)# 题目链接 打家劫舍(一) 题目描述 描述 你是一个经验丰富的小偷,准备偷沿街的一排房间,每个房间都存有一定的现金,为了防止被发现,你不能偷相邻的两家,即,如果偷了第一家, ...
- HDU 2084 数塔(DP)(JAVA版)
数塔 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...
- dp cf 20190615
A. Timofey and a tree 这个不算是dp,就是一个思维题,好难想的思维题,看了题解才写出来的, 把点和边分开,如果一条边的两个点颜色不同就是特殊边,特殊边两边连的点就叫特殊点, 如果 ...
- BZOJ 1003[ZJOI2006]物流运输(SPFA+DP)
Problem 1003. -- [ZJOI2006]物流运输 1003: [ZJOI2006]物流运输 Time Limit: 10 Sec Memory Limit: 162 MB Submit ...
- [NOI2005]聪聪与可可(期望dp)
题意:给一张无向图,有一只猫和一只老鼠,猫每秒会向老鼠的方向移动两个单位,若它们的距离为一,那么只会移动一个单位,老鼠会等概率向周围移动一步或不动,求猫抓到老鼠的期望时间. Solution luog ...
- Codeforces 903F Clear The Matrix(状态压缩DP)
题目链接 Clear The Matrix 题意 给定一个$4 * n$的矩形,里面的元素为$'.'$或$'*'$.现在有$4$种正方形可以覆盖掉$'*'$,正方形的边长分别为$1,2,3,4$. 求 ...
- 喵哈哈村的魔法考试 Round #1 (Div.2) 题解源码(A.水+暴力,B.dp+栈)
A.喵哈哈村的魔法石 发布时间: 2017年2月21日 20:05 最后更新: 2017年2月21日 20:06 时间限制: 1000ms 内存限制: 128M 描述 传说喵哈哈村有三种神 ...
- 尼克的任务 dp 洛谷1280
蒟蒻表示老久没看过dp题目了,,挺水的一道dp题目都没想出来,,, 首先设dp[i]表示从开始到i时间的最大空闲时间,用vector to[x] 表示从x点开始的任务结束时间,cnt[x]表示从x开始 ...
最新文章
- 引入 ServletContextListener @Autowired null 解决办法
- 02331 数据结构 学习小记 归纳总结
- SQL Server 游标运用:查看所有数据库所有表大小信息(Sizes of All Tables in All Database)...
- Java测试新手_测试新手的一些经验
- git flow 分支合并
- cmd控制台通过sftp命令下载服务器文件
- JAVA之所得税计算器
- 使用esp-ilnk 连接 sim800l 测试AT指令
- 解析Excel(xls、xlsx两种格式)
- Selenium WebDriver高级应用
- 回溯法之旅行商问题解题思路详解
- “新”在哪 | 解密新型云计算数据中心三大关键词
- Android Studio模拟器如何运行apk文件
- windows10使用administrator登录后出现“无法使用内置管理员账户打开应用”的解决方法
- cad相对坐标快捷键_cad角度快捷键(cad角度命令怎么输入)
- 前端--HTML,常用标签学习
- Reporting verbs
- vartualBox安装oracle数据库
- idea maven项目的依赖有红色波浪线解决
- uva188 完美哈希题解
热门文章
- posix自定义消息队列_消息队列开源框架,基于Io,节约服务器资源
- 张志华 机器学习 两门课程正确顺序及视频连接
- [Python]--爬虫 Resources Collection
- wamp2.5 64 mysql_Wamp2.5 64bit,无法修改MySQL datadir位置_MySQL
- python 数据库表结构转为类_Python数据科学实践 | 数据库1
- leetcode17 电话号码的字母组合
- Msg3最大传输次数(maxHARQ-Msg3Tx)
- 线程运行程序c语言,理解线程1 C语言示例的程序
- 通过MATLAB读取mnist数据库
- GPS系统跟踪捕获算法的Verilog实现