描述:

从左上角走到右下角,中间可能有若干阻碍;

题目给出一个矩阵,0表示可以走,1表示有障碍。

解决:

思路同第一题,只是如果上面或左边有障碍,自身不一定能走,注意些边界条件即可,复杂度仍是m*n。

为了防止和真正的路径1冲突,走过的障碍改为-1。

int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {
int m = obstacleGrid.size();
int n = obstacleGrid[].size(); for (int i = ; i < m; ++i) {
for (int j = ; j < n; ++j) {
if (obstacleGrid[i][j] == ) {
obstacleGrid[i][j] = -;
continue;
} if (i == && j == )
obstacleGrid[][] = ;
else if (i == )
obstacleGrid[][j] = obstacleGrid[][j - ];
else if (j == )
obstacleGrid[i][] = obstacleGrid[i - ][];
else if (obstacleGrid[i - ][j] == - && obstacleGrid[i][j - ] == -)
obstacleGrid[i][j] = -;
else if (obstacleGrid[i - ][j] == -)
obstacleGrid[i][j] = obstacleGrid[i][j - ];
else if (obstacleGrid[i][j - ] == -)
obstacleGrid[i][j] = obstacleGrid[i - ][j];
else if (obstacleGrid[i][j] == )
obstacleGrid[i][j] = -;
else
obstacleGrid[i][j] = obstacleGrid[i - ][j] + obstacleGrid[i][j - ];
}
} if (obstacleGrid[m - ][n - ] == -)
return ;
return obstacleGrid[m - ][n - ];
}

leetcode 63 不同的路径2的更多相关文章

  1. LeetCode 高效刷题路径

    LeetCode 高效刷题路径 Hot 100 https://leetcode.com/problemset/hot-100/ https://leetcode-cn.com/problemset/ ...

  2. [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 ...

  3. Java实现 LeetCode 63 不同路径 II(二)

    63. 不同路径 II 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为"Start" ). 机器人每次只能向下或者向右移动一步.机器人试图达到网格的右下角(在 ...

  4. 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). ...

  5. LeetCode 63. Unique Path II(所有不同路径之二)

    Follow up for "Unique Paths": Now consider if some obstacles are added to the grids. How m ...

  6. LeetCode第63题--不同路径

    一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” ).机器人每次只能向下或者向右移动一步.机器人试图达到网格的右下角(在下图中标记为“Finish”).现在考虑网格中 ...

  7. [LeetCode] 63. 不同路径 II ☆☆☆(动态规划)

    描述 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” ). 机器人每次只能向下或者向右移动一步.机器人试图达到网格的右下角(在下图中标记为“Finish”). 现在 ...

  8. LeetCode 63. 不同路径 II(Unique Paths II)

    题目描述 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” ). 机器人每次只能向下或者向右移动一步.机器人试图达到网格的右下角(在下图中标记为“Finish”). ...

  9. leetcode 63 不同路径II

    二维数组动态规划,还可以采用一维数组进行动态规划. class Solution { public: int uniquePathsWithObstacles(vector<vector< ...

随机推荐

  1. 经典排序方法 python

    数据的排序是在解决实际问题时经常用到的步骤,也是数据结构的考点之一,下面介绍10种经典的排序方法. 首先,排序方法可以大体分为插入排序.选择排序.交换排序.归并排序和桶排序四大类,其中,插入排序又分为 ...

  2. start-stop-daemon自动启动、关闭后台程序参数传递

    /************************************************************************* * start-stop-daemon自动启动.关 ...

  3. Struts2自定义标签3模仿原有的s:if s:elseif s:else自定义自己的if elsif else

    第一步:webroot/web-inf下简历str.tld文件 <?xml version="1.0" encoding="UTF-8"?> < ...

  4. 32位C#程序连接64位ORACLE数据库

    VS2008 生成32位程序,安装在64位服务器上,调用System.data.oracleclient            oracleConn = new OracleConnection(); ...

  5. Jmeter二次开发之代码环境搭建(QQ交流群:577439379)

    一.创建项目 1. 分别下载apache3.1 binaries和source两个压缩包,前者为release版本,后者为jmeter最新的源码,下载地址:http://jmeter.apache.o ...

  6. java工具类-邮件发送

    mail-1.4.jar package com.huawei.it.citools.mail; import java.util.Date;import java.util.List;import ...

  7. Java 判断是否包含指定的子串 contains()

    Java 手册 contains public boolean contains(CharSequence s) 当且仅当此字符串包含指定的 char 值序列时,返回 true. 参数: s - 要搜 ...

  8. [转][Dapper]SQL 经验集

    condition.Append(" AND ChineseName like @name"); p.Add("@name", "%" + ...

  9. MikroTik-ROS-无线设备传输距离

    近期在MikroTik官网论坛给出了官方无线成品设备的最大传输距离. 以下设备列表基于理想的环境条件,包括干扰,天气,校准精度等因素,表给出了基于802.11ac或802.11n在获取最大传输带宽的情 ...

  10. 短信发送接口demo

    public class SendValidCode { // 短信发送的接口网关 private static String sendUrl = "******************** ...