LintCode UniquePathsII 不同的路径II

原创 2015年07月10日 14:58:48

中文描述
跟进“不同的路径”:
现在考虑网格中有障碍物,那样将会有多少条不同的路径?
网格中的障碍和空位置分别用1和0来表示。

样例
如下所示在3x3的网格中有一个障碍物:
[
[0,0,0],
[0,1,0],
[0,0,0]
]
一共有2条不同的路径从左上角到右下角。

注意
m和n均不超过100

public class Solution {
    /**
     * @param obstacleGrid: A list of lists of integers
     * @return: An integer
     */
    public int uniquePathsWithObstacles(int[][] obstacleGrid) {
        int m = obstacleGrid.length;
        int n = obstacleGrid[0].length;
        int[] dp = new int[n];
        boolean row = false;//第一行是否有障碍
        boolean column = false;//第一列是否有障碍
        for(int i = 0; i < n; i++){//第一步动态规划
            if(obstacleGrid[0][i] == 1){
                row = true;
            }
            if(obstacleGrid[0][i] == 0 && row == false)
                dp[i] = 1;
            else
                dp[i] = 0;
        }
        if(obstacleGrid[0][0] == 1){
            column = true;
        }
        for(int i = 1; i < m; i++) {//其余步动归
            for(int j = 0; j < n; j++) {
                if(j == 0) {
                    if(obstacleGrid[i][0] == 1){
                        column = true;
                    }
                    if(obstacleGrid[i][0] == 0 && column == false)
                        dp[0] = 1;
                    else
                        dp[0] = 0;
                }else{
                    if(obstacleGrid[i][j] == 1)
                        dp[j] = 0;
                    else
                        dp[j] += dp[j-1];
                }

            }
        }
        return dp[n-1];
    }
}

lintcode-不同的路径II-115

跟进“不同的路径”: 现在考虑网格中有障碍物,那样将会有多少条不同的路径? 网格中的障碍和空位置分别用1和0来表示。 样例 如下所示在3x3的网格中有一个障碍物: ...
  • ljlstart
  • ljlstart
  • 2015年09月12日 17:54
  • 614

lintCode(115)——不同的路径||

问题描述:"不同的路径" 的跟进问题: 现在考虑网格中有障碍物,那样将会有多少条不同的路径? 网格中的障碍和空位置分别用 1 和 0 来表示。 如下所示在3x3的网格中有一个障碍物: [ [0,...
  • nawuyao
  • nawuyao
  • 2016年03月21日 22:59
  • 152

不同的路径 II

容易 不同的路径 II 27% 通过 跟进“不同的路径”: 现在考虑网格中有障碍物,那样将会有多少条不同的路径? 网格中的障碍和空位置分别用1和0来表示。 您在真实的面试中是否遇到过这个题?...
  • witnessai1
  • witnessai1
  • 2015年09月28日 12:41
  • 543

lintcode-不同的路径-114

有一个机器人的位于一个M×N个网格左上角(下图中标记为'Start')。 机器人每一时刻只能向下或者向右移动一步。机器人试图达到网格的右下角(下图中标记为'Finish')。 问有多少条不同的...
  • ljlstart
  • ljlstart
  • 2015年09月09日 22:25
  • 333

LintCode笔记(8)——丑数II

Ugly number is a number that only have factors 2, 3 and 5. Design an algorithm to find the nth ugly ...
  • lhanchao
  • lhanchao
  • 2016年08月01日 08:28
  • 1331

LintCode(103)带环链表 II

题目 给定一个链表,如果链表中存在环,则返回到链表中环的起始节点的值,如果没有环,返回null。 您在真实的面试中是否遇到过这个题?  Yes 样例 ...
  • fly_yr
  • fly_yr
  • 2016年05月31日 21:08
  • 3532

主元素、主元素II、主元素III

写在前面这类题目之前还真没接触过,没什么好的思路。不过看要求又是一道考虑时间复杂度的问题,需要掂量(考虑)一下自己的算法有没有达到要求。根据自己目前的能力写出来的算法还真没做到O(n)的时间复杂度,应...
  • surp2011
  • surp2011
  • 2016年04月20日 17:01
  • 1812

lintcode-不同的路径II-115

跟进“不同的路径”: 现在考虑网格中有障碍物,那样将会有多少条不同的路径? 网格中的障碍和空位置分别用1和0来表示。 样例 如下所示在3x3的网格中有一个障碍物: ...
  • ljlstart
  • ljlstart
  • 2015年09月12日 17:54
  • 614

不同的二叉查找树 II lintcode

给出n,生成所有由1...n为节点组成的不同的二叉查找树 您在真实的面试中是否遇到过这个题?  Yes 样例 给出n = 3,生成所有5种不同形态的二叉查找...
  • u014470581
  • u014470581
  • 2016年10月14日 10:25
  • 487

不同的路径 III-LintCode

“不同的路径II”的 follow up:http://lintcode.com/en/problem/unique-paths-ii/ 现在每一个格子都包含了一个值,所以每条路径都有一个值,找到所...
  • zhaohengchuan
  • zhaohengchuan
  • 2018年01月08日 20:04
  • 22
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:LintCode UniquePathsII 不同的路径II
举报原因:
原因补充:

(最多只允许输入30个字)