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 };
  • 相关阅读:
    压缩命令
    常用命令7-帮助命令1
    常用命令6--文件搜索命令4-grep
    常用命令5--文件搜索命令3-find
    常用命令4-文件搜索命令 2- which
    【转】Castle开发系列文章
    【摘录】C#多线程编程
    优化一
    Value Shadowing(不明確的方式存取变量)
    portability flaw : file separator (可移植性缺陷:文件分隔符)
  • 原文地址:https://www.cnblogs.com/amazingzoe/p/4677438.html
Copyright © 2011-2022 走看看