.
2019-11-16 吴亲库里 库里的深夜食堂
当前机器人位于左上角的位置,每次只能向下或者向右移动一位,求到达网格的右下角有多少种独特的方式。这道题和上一题唯一的不同点在于增加了障碍,如果往下或者往右的点的值是1,表示下一个行走的位置不能是值为1的路线。

这里唯一需要注意是当某个位置的值是1的时候,那么对应的dp[j]就等于0,表示点j的位置只有0种路径,为什么,因为j位置上的值等于1,路已经封死了,很简单的道理,最后只要位置不等于0就更新dp。
/**
* @param Integer[][] $obstacleGrid
* @return Integer
*/
function uniquePathsWithObstacles($obstacleGrid)
{
$m = count($obstacleGrid);
$n = count($obstacleGrid[0]);
$dp[0] = 1;
for ($i = 0; $i < $m; $i++) {
for ($j = 0; $j < $n; $j++) {
if ($obstacleGrid[$i][$j] == 1) {
$dp[$j] = 0;
} else {
$dp[$j] += $dp[$j - 1];
}
}
}
return $dp[$n - 1];
}
