63、Unique Path 2

在 unique paths I 基础上增加障碍物
思路
动态规划
转移方程

path[i][j] = obstacleGrid[i][j] ? 0 : path[i - 1][j] + path[i][j - 1];

解法

public int uniquePathsWithObstacles(int[][] obstacleGrid) {
        int row = obstacleGrid.length;
        if(row==0){
            return 0;
        }
        int column = obstacleGrid[0].length;
        
        int path = obstacleGrid[0][0] == 1 ? 0 : 1;
        for(int i = 1 ; i<row ; i++){
            if(obstacleGrid[i][0] == 1){
                path = 0;
            }
            obstacleGrid[i][0] = path;
        }
        
        path = 1;
        for(int i = 0 ; i<column ; i++){
            if(obstacleGrid[0][i] == 1){
                path = 0;
            }
            obstacleGrid[0][i] = path;
        }
        
        for(int i = 1 ; i<row ; i++){
            for(int j = 1 ; j<column ; j++){
                if(obstacleGrid[i][j] == 1){
                    obstacleGrid[i][j] = 0;
                }else{
                    obstacleGrid[i][j] = obstacleGrid[i][j-1] + obstacleGrid[i-1][j];
                }
            }
        }
        return obstacleGrid[row-1][column-1];
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 动态规划(Dynamic Programming) 本文包括: 动态规划定义 状态转移方程 动态规划算法步骤 最长...
    廖少少阅读 3,327评论 0 18
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,769评论 0 33
  • 198. House Robber【Easy DP】You are a professional robber p...
    GeniusYY阅读 1,161评论 0 0
  • “这点小事都干不好,干什么吃的,不行就走人,公司没那闲钱养你”王总骂骂咧咧的甩上了门,“现在的大学生” 我捡起...
    _Joker_阅读 216评论 0 0
  • 其实完全没有意识到2月15号就是春节,就主动报名分享了,当看到日期时候反而挺开心的,在这么独特的日子里,跟一...
    离落8311阅读 182评论 0 1