zoukankan      html  css  js  c++  java
  • Leetcode-Unique Paths II

    Follow up for "Unique Paths":

    Now consider if some obstacles are added to the grids. How many unique paths would there be?

    An obstacle and empty space is marked as 1 and 0 respectively in the grid.

    For example,

    There is one obstacle in the middle of a 3x3 grid as illustrated below.

    [
      [0,0,0],
      [0,1,0],
      [0,0,0]
    ]
    

    The total number of unique paths is 2.

    Note: m and n will be at most 100.

    Analysis:

    DP problem. Similiar to Unique Path I.

    Solution:

     1 public class Solution {
     2     public int uniquePathsWithObstacles(int[][] obstacleGrid) {
     3         int[][] grid = obstacleGrid;
     4         int xLen = grid.length;
     5         if (xLen==0) return 0;
     6         int yLen = grid[0].length;
     7         if (yLen==0) return 0;
     8         
     9         int[] path = new int[yLen];
    10         if (grid[0][0]==1)
    11             return 0;
    12         else path[0] = 1;
    13         for (int i=1;i<yLen;i++)
    14            if (grid[0][i]==1) path[i]=0;
    15            else path[i] = path[i-1];
    16         
    17         for (int i=1;i<xLen;i++){
    18             if (grid[i][0]==1) path[0] = 0;
    19             for (int j=1;j<yLen;j++)
    20                 if (grid[i][j]==1) path[j] = 0;
    21                 else path[j] = path[j-1]+path[j];
    22         }
    23         return path[yLen-1];              
    24         
    25     }
    26 }
  • 相关阅读:
    什么事数据对象以及属性分为什么类型?
    Oracle数据库安装
    红黑树和B树
    Java多线程02
    HashMap分析
    java虚拟机——垃圾回收与内存分配
    Java虚拟机——对象
    Java虚拟机——内存
    java数据结构03
    LeetCode刷题
  • 原文地址:https://www.cnblogs.com/lishiblog/p/4102791.html
Copyright © 2011-2022 走看看