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


    细节多注意

    这类vector的长度求法

    obstacleGrid.size();

    obstacleGrid[0].size();

    用length()报错

    class Solution {
    public:
        int uniquePathsWithObstacles(vector<vector<int> > &obstacleGrid) 
        {
            if(obstacleGrid[0][0]==1)return 0;
            int i,j;
            int row = obstacleGrid.size();  
            int column = obstacleGrid[0].size();  
            int dp[row+1][column+1];
            dp[0][0]=1;
            for(i=1;i<column;i++)
            {
                if(obstacleGrid[0][i]==0&&dp[0][i-1]==1)
                    dp[0][i]=1;
                else 
                    dp[0][i]=0;
            }
            for(i=1;i<row;i++)
            {
                if(obstacleGrid[i][0]==0&&dp[i-1][0]==1)
                    dp[i][0]=1;
                else 
                    dp[i][0]=0;
            }
            for(i=1;i<row;i++)
            for(j=1;j<column;j++)
            {
                if(obstacleGrid[i][j]==1)
                {
                    dp[i][j] = 0;
                    continue;
                }
                if(obstacleGrid[i-1][j]==1&&obstacleGrid[i][j-1]==1)
                {
                    dp[i][j] = 0;
                    continue;
                }
                    
                if(obstacleGrid[i-1][j]==1&&obstacleGrid[i][j-1]==0)
                    dp[i][j] = dp[i][j-1];
                if(obstacleGrid[i-1][j]==0&&obstacleGrid[i][j-1]==1)
                    dp[i][j] = dp[i-1][j];
                if(obstacleGrid[i-1][j]==0&&obstacleGrid[i][j-1]==0)
                    dp[i][j] = dp[i][j-1] + dp[i-1][j];
                    
            }
            return dp[row-1][column-1];
        }
    };


    每天早上叫醒你的不是闹钟,而是心中的梦~
  • 相关阅读:
    mysql DCL(数据控制语句)
    sybase 脚本建表和删除表
    mysql DML(数据操纵语句)
    delphi fastmm4 调试
    delphi class of 类引用
    DELPHI SetLocaleInfo 设置本地时间
    DELPHI 去字符串中所有空格
    SUSE 11 安装MongoDB
    suse下 登录mongodb
    DELPHI 的 {$M +} 和{$M -}
  • 原文地址:https://www.cnblogs.com/vintion/p/4116988.html
Copyright © 2011-2022 走看看