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 };
  • 相关阅读:
    句子反转
    python中计时模块timeit的使用方法
    python入门(一)
    将小程序的API封装成支持Promise的API
    微信小程序实现导航功能的操作步骤
    微信小程序朋友转发和朋友圈分享
    js原生上传图片
    FormData
    原生 websocket
    判断手机终端是pc还是移动端,并自动跳转
  • 原文地址:https://www.cnblogs.com/amazingzoe/p/4677438.html
Copyright © 2011-2022 走看看