【LeetCode】09动态规划Part02 62. 不同路径、63. 不同路径II
【LeetCode】09动态规划Part02 62. 不同路径、63. 不同路径II
62. 不同路径
题目链接:https://leetcode.cn/problems/unique-paths/description/
思路
到达某个非边缘块(第一行或第一列)只有两种可能,要么从其上方来,要么从其左侧来。那么到达这个块一共就有dp[i][j] = dp[i - 1][j] + dp[i][j - 1]
个方法。如果是第一行或第一列只可能有一种方法。
1. 确定dp数组
二维dp,dp[i][j]
代表第i行第j列这个位置有多少种方法可以到达
2. 递推公式
dp[i][j] = dp[i - 1][j] + dp[i][j - 1]
3. dp数组的初始化
第一行、第一列均为1
4. 确定遍历顺序
先行后列
代码
1 |
|
63. 不同路径II
思路
思路基本同上,但是多了一层障碍,需要多一层判断,如果位置(i, j)
有障碍(即obstacleGrid[i][j] == 1
),那么dp[i][j]
的值为0
1. 确定dp数组
二维dp,dp[i][j]
代表第i行第j列这个位置有多少种方法可以到达
2. 递推公式
dp[i][j] = dp[i - 1][j] + dp[i][j - 1]
3. dp数组的初始化
第一行、第一列在没有障碍的位置均为1
4. 确定遍历顺序
先行后列
代码
1 |
|
【LeetCode】09动态规划Part02 62. 不同路径、63. 不同路径II
https://promisewang.github.io/post/e9769661.html