zoukankan      html  css  js  c++  java
  • Unique Path 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.

    Analyse: Construct another 2*2 array to store path information. First initialize the first column and first row, then compute remaining parts.

    Runtime: 4ms.

     1 class Solution {
     2 public:
     3     int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {
     4         if(obstacleGrid[0][0] == 1) return 0;
     5         
     6         int m = obstacleGrid.size();
     7         int n = obstacleGrid[0].size();
     8         
     9         vector<vector<int> > path(m, vector<int>(n, 0));
    10         path[0][0] = 1;
    11         for(int i = 1; i < m; i++){ //indicate whether elements in the first column are reachable
    12             if(obstacleGrid[i][0] == 0 && path[i - 1][0] == 1) path[i][0] = 1;
    13             else path[i][0] = 0;
    14         }
    15         for(int j = 1; j < n; j++){ //indicate whether the elements in the first row are reachable
    16             if(obstacleGrid[0][j] == 0 && path[0][j - 1] == 1) path[0][j] = 1;
    17             else path[0][j] = 0;
    18         }
    19         for(int i = 1; i < m; i++){
    20             for(int j = 1; j < n; j++){
    21                 if(obstacleGrid[i][j] == 1) path[i][j] = 0;
    22                 else path[i][j] = path[i - 1][j] + path[i][j - 1];
    23             }
    24         }
    25         return path[m - 1][n - 1];
    26     }
    27 };
  • 相关阅读:
    POJ 3253 Fence Repair
    POJ 1328 Radar Installation
    bzoj 4010: [HNOI2015]菜肴制作
    bzoj 4008: [HNOI2015]亚瑟王
    UVA 1451 Average
    UVA 1481 Genome Evolution
    HDU 1542 Atlantis
    UVA 11419 SAM I AM
    UVA 11762 Race to 1
    P2209 [USACO13OPEN]燃油经济性Fuel Economy
  • 原文地址:https://www.cnblogs.com/amazingzoe/p/4677438.html
Copyright © 2011-2022 走看看