• 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 };

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

  • 相关阅读:
    自控力和专注力是执行力的保证
    今宵又除夕
    买了小米盒子三代
    电容相位滞后?电感超前
    lcr电桥浅谈
    ad 线束和网络
    浅谈 R_S触发器
    NTSC PAL 介绍
    verilog 之流水灯
    io 口方向调整 stm32
  • 原文地址:https://www.cnblogs.com/qinduanyinghua/p/5733271.html
Copyright © 2020-2023  润新知