62.63 不同路径

class Solution {//比较简单的动态规划题
    public int uniquePaths(int m, int n) {
        
        int[][] dp =new int[m][n];
        
        
        for(int i=0;i<=m-1;i++)
        {
            for(int j=0;j<=n-1;j++)
            {
                if(i==0 && j==0)
                {
                    dp[i][j]=1;
                }
                else if(i==0)
                {
                    dp[i][j]=dp[i][j-1];
                }
                else if(j==0)
                {
                    dp[i][j]=dp[i-1][j];
                }
                else
                    dp[i][j]=dp[i-1][j]+dp[i][j-1];
            }
        }
        return dp[m-1][n-1];
        
    }
}
class Solution {
    public int uniquePathsWithObstacles(int[][] obstacleGrid) {
        
        int m = obstacleGrid.length;
        
        int n = obstacleGrid[0].length;
        
        int [][]dp =new int[m+1][n+1];
            
        for(int i=0;i<=m-1;i++)
        {
            for(int j=0;j<=n-1;j++)
            {
                if(obstacleGrid[i][j]==1)
                {
                    dp[i][j]=0;
                }
                else 
                {
                    if(i==0 && j==0)
                    {
                        dp[i][j]=1;
                    }
                    else if(j==0)
                    {
                        dp[i][j]=dp[i-1][j];
                    }
                    else if(i==0)
                    {
                        dp[i][j]=dp[i][j-1];
                    }
                    else
                    {
                        dp[i][j]=dp[i-1][j]+dp[i][j-1];
                    }
                    
                }
                
            }
        }
        
        return dp[m-1][n-1];
        
        
    }
}

 

posted @ 2019-07-05 11:24  王爷爱吃秋刀鱼  阅读(88)  评论(0编辑  收藏  举报