LeetCode-63. 不同路径 II
最近英文版的访问特别慢,转战中文吧
和上一题一样,递归会超时
//63 不同路径2,递归解法
int uniquePaths2(vector<vector<int>>& obstacleGrid, int m,int n) {
if ((m == && n == ) || (m == && n == ) || (m == && n == )) {
if (obstacleGrid[obstacleGrid.size() - ][obstacleGrid[].size() - ] == )
return ;
else
return ;
}
int p1 = ;
int p2 = ;
//获得向下走的总数,当下面的数为1或者是到了最底层,向下的总数为0
if (m == || obstacleGrid[m-][n-] == )
p1 = ;
else
p1 = uniquePaths2(obstacleGrid,m-,n);
//向右
if (n == || obstacleGrid[m - ][n - ] == )
p2 = ;
else
p2 = uniquePaths2(obstacleGrid, m, n - );
return p1 + p2;
}
int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {
if (obstacleGrid[][] == )
return ;
return uniquePaths2(obstacleGrid,obstacleGrid.size(),obstacleGrid[].size());
}
使用数组可以通过,和上题相比,这题思路就更直接,但是效率比之前更低一点,使用的result和题目所给的格子大小一样,从右下向左上遍历,更加清晰,就是需要额外处理终点
//非递归解法
int uniquePathsWithObstacles2(vector<vector<int>>& obstacleGrid) {
/*if (obstacleGrid[0][0] == 1 || obstacleGrid[obstacleGrid.size() - 1][obstacleGrid[0].size() - 1])
return 0;*/
vector<vector<int>> result(obstacleGrid.size(),vector<int>(obstacleGrid[].size(),));
for (int i = obstacleGrid.size() - ; i >= ; i--) {
for (int j = obstacleGrid[].size() - ; j >= ; j--) {
if (obstacleGrid[i][j] == ) {
result[i][j] = ;
continue;
}
if (i == obstacleGrid.size() - && j == obstacleGrid[].size() - ) {
result[i][j] = ;
continue;
}
int p1 = ;
int p2 = ;
//如果是下部有位置
if (i != obstacleGrid.size() - )
p1 = result[i + ][j];
//如果是右边有位置
if (j != obstacleGrid[].size() - )
p2 = result[i][j + ];
result[i][j] = p1 + p2 ;
}
}
return result[][];
}
LeetCode-63. 不同路径 II的更多相关文章
- Java实现 LeetCode 63 不同路径 II(二)
63. 不同路径 II 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为"Start" ). 机器人每次只能向下或者向右移动一步.机器人试图达到网格的右下角(在 ...
- [LeetCode] 63. 不同路径 II ☆☆☆(动态规划)
描述 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” ). 机器人每次只能向下或者向右移动一步.机器人试图达到网格的右下角(在下图中标记为“Finish”). 现在 ...
- LeetCode 63. 不同路径 II(Unique Paths II)
题目描述 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” ). 机器人每次只能向下或者向右移动一步.机器人试图达到网格的右下角(在下图中标记为“Finish”). ...
- leetcode 63 不同路径II
二维数组动态规划,还可以采用一维数组进行动态规划. class Solution { public: int uniquePathsWithObstacles(vector<vector< ...
- Leetcode之动态规划(DP)专题-63. 不同路径 II(Unique Paths II)
Leetcode之动态规划(DP)专题-63. 不同路径 II(Unique Paths II) 初级题目:Leetcode之动态规划(DP)专题-62. 不同路径(Unique Paths) 一个机 ...
- 刷题-力扣-63. 不同路径 II
63. 不同路径 II 题目链接 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/unique-paths-ii/ 著作权归领扣网络所有.商业转 ...
- 63.不同路径II
目录 63.不同路径Ⅱ 题目 题解 63.不同路径Ⅱ 题目 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为"Start" ). 机器人每次只能向下或者向右移动 ...
- [LeetCode] 63. Unique Paths II 不同的路径之二
A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below). The ...
- LeetCode 63. Unique Paths II不同路径 II (C++/Java)
题目: A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below). ...
- LeetCode 63. Unique Path II(所有不同路径之二)
Follow up for "Unique Paths": Now consider if some obstacles are added to the grids. How m ...
随机推荐
- 2019浙大校赛--G--Postman(简单思维题)
一个思维水题 题目大意为,一个邮递员要投递N封信,一次从邮局来回只能投递K封.求最短的投递总距离.需注意,最后一次投递后无需返回邮局. 本题思路要点: 1.最后一次投递无需返回邮局,故最后一次投递所行 ...
- js 颜色选择插件
COLPICK是一款非常的轻小,无需图片就可以实现颜色选择器的jquery插件,只用 JS 和 CSS 就实现了全部功能,而且非常直观,类似Photoshop的界面,使用方便.颜色的明暗很容易自定义, ...
- 【翻译】从头开始写一个时间序列数据库-Writing a Time Series Database from Scratch
本文来自: https://fabxc.org/tsdb/, 如翻译有误,请纠正. 我是从事监控工作的.特别是Prometheus, 一个包含自定义的时间序列库以及集成Kuberntes的监控系统. ...
- 学习python一个月盘点
1,看了30多个视频,是一些基本操作的.粗略的了解了语法,函数,循环,正则表达,将视频内容全部敲入文本: 2,看了100页的书,习题不太会,进展很慢.第五章10以后的题都没做: 3,看C++的书,有点 ...
- python set所用后列表不改变里面内容排序
my_list = [1,2,1,54,5,64,4681,4,676] my_list_two = list(set(my_list)) my_list_two.sort(key = my_list ...
- jwt vs session 以rails 为例 (翻译部分)
原文地址:https://pragmaticstudio.com/tutorials/rails-session-cookies-for-api-authentication 普通方式: 令牌为基础的 ...
- 记一次bash脚本开发的经历
现状描述与需求描述 最近梳理系统功能的时候发现现在每个月处理完数据之后,需要给别的系统传送批接口文件,接口文件的内容是来自于Oracle数据表中的数据.我每次都需要手工执行一下存储过程,让数据从正式表 ...
- 通配符的匹配很全面, 但无法找到元素 'xxxxxxxx'
首先,一般配置通配符之前,你都会有如下xml头吧 <beans xmlns="http://www.springframework.org/schema/beans" xml ...
- PowerShell实现简单的搜索地区功能
Add-Type -AssemblyName Microsoft.VisualBasic $VBI = [Microsoft.VisualBasic.Interaction] function Sea ...
- ISG 2018 Web Writeup
作者:agetflag 原文来自:ISG 2018 Web Writeup ISG 2018 Web Writeup CTF萌新,所以写的比较基础,请大佬们勿喷,比赛本身的Web题也不难 calc 首 ...