115 不同的路径Ⅱ
原题网址:https://www.lintcode.com/problem/unique-paths-ii/description
描述
"不同的路径" 的跟进问题:
现在考虑网格中有障碍物,那样将会有多少条不同的路径?
网格中的障碍和空位置分别用 1 和 0 来表示。
m 和 n 均不超过100
样例
如下所示在3x3的网格中有一个障碍物:
[[0,0,0],[0,1,0],[0,0,0]
]
一共有2条不同的路径从左上角到右下角。
思路:方法同不同的路劲类似,只不过要注意有障碍物的情况。有障碍物的地方dp值为0,这里尤其注意如果第一个点(0,0)就是障碍物,则整个grid无法走通,直接return 0即可。同理,初始化第一行、第一列时,如果遇到一个障碍物,后面的dp值全为0。
AC代码:
class Solution { public:/*** @param obstacleGrid: A list of lists of integers* @return: An integer*/int uniquePathsWithObstacles(vector<vector<int>> &obstacleGrid) {// write your code hereint row=obstacleGrid.size();if (row==0){return 0;}int col=obstacleGrid[0].size();if (col==0){return 0;}vector<vector<int>> dp(row,vector<int>(col,0));if (obstacleGrid[0][0]==0){dp[0][0]=1;}else//如果第一步都走不通,说明无法到达右下角,直接返回0; {return 0;}for (int i=1;i<row;i++){if (obstacleGrid[i][0]==0){dp[i][0]=1;}else//第一列只要出现一个障碍,后面的就无法走通; {break;}}for (int j=1;j<col;j++){if (obstacleGrid[0][j]==0){dp[0][j]=1;}else//第一行只要出现一个障碍,后面的就无法走通; {break;}}for (int i=1;i<row;i++){for (int j=1;j<col;j++){if (obstacleGrid[i][j]==0){dp[i][j]=dp[i-1][j]+dp[i][j-1];}}}return dp[row-1][col-1];} };
其他实现方式:https://blog.csdn.net/shinanhualiu/article/details/48737919
转载于:https://www.cnblogs.com/Tang-tangt/p/9138851.html
115 不同的路径Ⅱ相关推荐
- linux 搭建emby+clouddrive+115云盘 家庭影院解决方案 流媒体
我自己云机搭建的 https://video.2048.top https://www.2048.top/video 可以私聊找我要体验账号 前言 借鉴: 1.https://sbugzu.githu ...
- 中国地质大学(北京) 研究生 2022秋《Python科学计算》期末考试 模拟题2 题目+参考答案
另一套模拟题1: 期末考试 模拟题1 考试方法 浏览器(Chrome.火狐)登录PTA网址: pintia.cn,单击右上角"登录->考试登录",下拉菜单输入cugb 选择& ...
- 腾讯、新浪、同花顺、东方财富、广发最全公开股票接口,股票api,建议各位宽友收藏
1.股票列表接口 路径:沪深A股-股票基础接口-股票列表 API:https://ig507.com/data/base/gplist?licence=您的licence 描述:获取基础的股票代码和名 ...
- 路径搜索算法 python实现_A*算法在栅格地图上的路径搜索(python实现)
作者:邬杨明 1 import numpy2 from pylab import * 3 4 # 定义一个含有障碍物的20×20的栅格地图5 # 10表示可通行点6 # 0表示障碍物7 # 7表示起点 ...
- hdu 1026 bfs+记录路径
题意:从0,0点出发到n-1,m-1点,路上的数字代表要在这个点额外待多少秒,求最短的路 递归输出路径即可 1 #include<cstdio> 2 #include<iostrea ...
- POJ 3237.Tree -树链剖分(边权)(边值更新、路径边权最值、区间标记)贴个板子备忘...
Tree Time Limit: 5000MS Memory Limit: 131072K Total Submissions: 12247 Accepted: 3151 Descriptio ...
- 洛谷 P3384 【模板】树链剖分-树链剖分(点权)(路径节点更新、路径求和、子树节点更新、子树求和)模板-备注结合一下以前写的题目,懒得写很详细的注释...
P3384 [模板]树链剖分 题目描述 如题,已知一棵包含N个结点的树(连通且无环),每个节点上包含一个数值,需要支持以下操作: 操作1: 格式: 1 x y z 表示将树从x到y结点最短路径上所有节 ...
- Android Bluetooth 文件接收路径修改方法
修改文件: packages/apps/Bluetooth/src/com/android/bluetooth/opp/BluetoothOppReceiveFileInfo.java 相关代码片段: ...
- WPF路径动画(动态逆向动画)
WPF 中的Path.Data 不再多介绍,M开始坐标点 C弧度坐标点 L 直线坐标点 <Path x:Name="path0" Data="M 10,100 C ...
最新文章
- linux su切换用户提示 Authentication failure的解决方法
- 《精通Nginx》——2.8 完整的样本配置文件
- 重新精读《Java 编程思想》系列之public,protected,private与无修饰符权限的区别...
- UISegmentedControl的详细使用
- 126.数据链路层有哪些协议?
- android 图片压缩
- APIGEE:用于API代理的CI / CD管道
- 【Flink】Disconnect from JobManager responsible for
- 路由器与交换机的区别【知识普及】
- 关于在联想电脑管家更新网卡驱动后无法显示可用网络wifi的问题!
- mysql 开源监控软件_开源MySQL_Monito 图形可视化监控工具
- 时间序列复杂性的度量—近似熵和样本熵
- 程序员自曝接私活:10个月时间接了30多个单子,纯收入40万
- 计算机函数sumif求平均值,用sumif函数如何求平均值
- tampermonkey如何寻找_Tampermonkey脚本安装问题及自用脚本推荐
- ROS kinetic 连接实体机器人UR10(使用ur_morden_driver) catkin_make 时报错
- 利久贝分享:如何摆脱“穷人思维”?
- 刘长炯老师的java 学习大草原
- 虚拟机IC617 REHAT导入工艺库操作
- 四个模型与指标体系的建立