描述
该题来自于力扣第63题
分析
与力扣第62题唯一不同的地方,在于有障碍物,不难发现,到达i,j
网格的步数,依然是相邻左方与上方的步数之和,不过如果有一个相邻的区域是障碍物,那么该方向就失效,那么设置达到障碍物的步数为0
就可以。所以转移方程为
\[
dp[i][j] = \left\{
\begin{aligned}
& 0 & i,j\text{是障碍物}\\
& dp[i][j-1] & i,j\text{不是障碍物且 } i == 0 \text{
and } j > 0 \\
& dp[i-1][j] & i,j\text{不是障碍物且 } j == 0 \text{
and } i > 0 \\
& dp[i-1][j] + dp[i][j-1] & others
\end{aligned}
\right.
\]
注意初始化dp[0][0]=1
代码
python
1 | class Solution: |