62. 不同路径
分析
- 状态定义:
- 用
f[i][j]
表示从起点(0, 0)
到达网格位置(i, j)
的不同路径数
- 用
- 状态转移:
- 如果机器人能够从上方或左方到达
(i, j)
:- 从上方到达:路径数为
f[i-1][j]
- 从左方到达:路径数为
f[i][j-1]
- 从上方到达:路径数为
- 因此,状态转移方程为:
f[i][j] = f[i-1][j] + f[i][j-1]
- 如果机器人能够从上方或左方到达
- 初始条件:
- 起点
(0, 0)
的路径数为1
,即f[0][0] = 1
- 第一行和第一列的位置只能从一个方向到达:
- 第一行:只能从左到右
- 第一列:只能从上到下
- 起点
时间复杂度
需要遍历整个网格,时间复杂度为 O(mn)
空间复杂度
空间复杂度为 O(mn)
C++代码
|
|