原题网址: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)
 

思路:方法同不同的路劲类似,只不过要注意有障碍物的情况。有障碍物的地方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 不同的路径Ⅱ相关推荐

  1. linux 搭建emby+clouddrive+115云盘 家庭影院解决方案 流媒体

    我自己云机搭建的 https://video.2048.top https://www.2048.top/video 可以私聊找我要体验账号 前言 借鉴: 1.https://sbugzu.githu ...

  2. 中国地质大学(北京) 研究生 2022秋《Python科学计算》期末考试 模拟题2 题目+参考答案

    另一套模拟题1: 期末考试 模拟题1 考试方法 浏览器(Chrome.火狐)登录PTA网址: pintia.cn,单击右上角"登录->考试登录",下拉菜单输入cugb 选择& ...

  3. 腾讯、新浪、同花顺、东方财富、广发最全公开股票接口,股票api,建议各位宽友收藏

    1.股票列表接口 路径:沪深A股-股票基础接口-股票列表 API:https://ig507.com/data/base/gplist?licence=您的licence 描述:获取基础的股票代码和名 ...

  4. 路径搜索算法 python实现_A*算法在栅格地图上的路径搜索(python实现)

    作者:邬杨明 1 import numpy2 from pylab import * 3 4 # 定义一个含有障碍物的20×20的栅格地图5 # 10表示可通行点6 # 0表示障碍物7 # 7表示起点 ...

  5. hdu 1026 bfs+记录路径

    题意:从0,0点出发到n-1,m-1点,路上的数字代表要在这个点额外待多少秒,求最短的路 递归输出路径即可 1 #include<cstdio> 2 #include<iostrea ...

  6. POJ 3237.Tree -树链剖分(边权)(边值更新、路径边权最值、区间标记)贴个板子备忘...

    Tree Time Limit: 5000MS   Memory Limit: 131072K Total Submissions: 12247   Accepted: 3151 Descriptio ...

  7. 洛谷 P3384 【模板】树链剖分-树链剖分(点权)(路径节点更新、路径求和、子树节点更新、子树求和)模板-备注结合一下以前写的题目,懒得写很详细的注释...

    P3384 [模板]树链剖分 题目描述 如题,已知一棵包含N个结点的树(连通且无环),每个节点上包含一个数值,需要支持以下操作: 操作1: 格式: 1 x y z 表示将树从x到y结点最短路径上所有节 ...

  8. Android Bluetooth 文件接收路径修改方法

    修改文件: packages/apps/Bluetooth/src/com/android/bluetooth/opp/BluetoothOppReceiveFileInfo.java 相关代码片段: ...

  9. WPF路径动画(动态逆向动画)

    WPF 中的Path.Data 不再多介绍,M开始坐标点 C弧度坐标点 L 直线坐标点 <Path x:Name="path0" Data="M 10,100 C ...

最新文章

  1. linux su切换用户提示 Authentication failure的解决方法
  2. 《精通Nginx》——2.8 完整的样本配置文件
  3. 重新精读《Java 编程思想》系列之public,protected,private与无修饰符权限的区别...
  4. UISegmentedControl的详细使用
  5. 126.数据链路层有哪些协议?
  6. android 图片压缩
  7. APIGEE:用于API代理的CI / CD管道
  8. 【Flink】Disconnect from JobManager responsible for
  9. 路由器与交换机的区别【知识普及】
  10. 关于在联想电脑管家更新网卡驱动后无法显示可用网络wifi的问题!
  11. mysql 开源监控软件_开源MySQL_Monito 图形可视化监控工具
  12. 时间序列复杂性的度量—近似熵和样本熵
  13. 程序员自曝接私活:10个月时间接了30多个单子,纯收入40万
  14. 计算机函数sumif求平均值,用sumif函数如何求平均值
  15. tampermonkey如何寻找_Tampermonkey脚本安装问题及自用脚本推荐
  16. ROS kinetic 连接实体机器人UR10(使用ur_morden_driver) catkin_make 时报错
  17. 利久贝分享:如何摆脱“穷人思维”?
  18. 刘长炯老师的java 学习大草原
  19. 虚拟机IC617 REHAT导入工艺库操作
  20. 四个模型与指标体系的建立

热门文章

  1. matlab生成底层驱动封装库make_rtw_hook.m
  2. python torch.argmax()
  3. Q10:Java中输出如下直角图形
  4. 5S现场管理的八个口诀
  5. 1508-张晨曦总结《2016年-10月-29日》【连续8天总结】
  6. 阿里云盘自动订阅,转存重命名
  7. Java中常见的集合容器类关系图
  8. Python3:使用函数计算-输入日期,计算该日期是当年中第多少天
  9. Springboot接入微信支付、支付宝支付
  10. android 扫码枪bug记录