leetcode-63-dp经典算法题笔记
此题和leetcode 62题状态转移方程是一样的但是迁入了障碍物的概念如果需要知道状态转移方程的思路可以参考https://blog.csdn.net/qq_41936805/article/details/100179828解出此题我们必须知道对于障碍物的特点如下障碍处的dp值0我们已经知道了动态转移方程为dp[i][j]dp[i][j-1]dp[i-1][j]接下来就要加入限制条件如果检测到障碍就把障碍坐标的dp初始化为0如果起点dp[0][0]那么dp[1][1]1按照思路加上限制条件就可以了。然后将下面四种情况考虑一下[[0]][[1]]多行单列有石头单行多列有石头记录一下碰见的坑第二次for循环的限制条件不能是jn了因为不是每个obstacleGrid[].length是不相同的。classSolution{publicintuniquePathsWithObstacles(int[][]obstacleGrid){intmobstacleGrid.length;intnobstacleGrid[0].length;int[][]dpnewint[m][n];for(inti0;im;i){for(intj0;jobstacleGrid[i].length;j){if(obstacleGrid[i][j]1){dp[i][j]0;continue;}if(i0j0){dp[i][j]1;continue;}if(i0||j0){dp[i][j]i0?dp[i][j-1]:dp[i-1][j];continue;}dp[i][j]dp[i-1][j]dp[i][j-1];}}returndp[m-1][n-1];}}
