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

    思路:动态规划题。

    一开始边界的初始化很重要,其他的位置,如果是1,则置为0,否则的dp[i][j] = dp[i-1][j] + dp[i][j-1];

     1 class Solution {
     2 public:
     3     int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {
     4         if(obstacleGrid.size() == 0 || obstacleGrid[0].size() == 0)
     5             return 0;
     6         int dp[101][101], i, j;
     7         if(obstacleGrid[0][0] == 0){
     8             dp[0][0] = 1;
     9         }
    10         else{
    11             return 0;
    12         }
    13         
    14         for(i = 1; i < obstacleGrid.size(); i++){
    15             if(obstacleGrid[i][0] == 0 && dp[i-1][0] == 1)
    16                 dp[i][0] = 1;
    17             else
    18                 dp[i][0] = 0;
    19         }
    20         
    21         for(j = 1; j < obstacleGrid[0].size(); j++){
    22             if(obstacleGrid[0][j] == 0 && dp[0][j-1] == 1)
    23                 dp[0][j] = 1;
    24             else
    25                 dp[0][j] = 0;
    26         }
    27         
    28         for( i = 1; i < obstacleGrid.size(); i++){
    29             for(j = 1; j < obstacleGrid[0].size(); j++){
    30                 if(obstacleGrid[i][j] == 0)
    31                     dp[i][j] = dp[i-1][j] + dp[i][j-1];
    32                 else
    33                     dp[i][j] = 0;
    34             }
    35         }
    36         
    37         return dp[i-1][j-1];
    38         
    39     }
    40 };

    可以进行代码优化,节省空间。。。以后再说吧

  • 相关阅读:
    java自学
    java自学
    java自学
    java自学
    Interesting Finds: 2009 11.17 ~ 11.22
    Interesting Finds: 2009 10.09 ~10.13
    Interesting Finds: 2009 10.01 ~ 10.08
    Interesting Finds: 2009 10.14 ~ 10.21
    Interesting Finds: 2009 11.01 ~ 11.08
    Interesting Finds: 2009 10.25 ~ 10.31
  • 原文地址:https://www.cnblogs.com/qinduanyinghua/p/5733271.html
Copyright © 2011-2022 走看看