不同路径

不同路径

1、题目

图1

2、题解

动态规划

设置状态数组dp,对于\(dp[i][0]\)\(dp[0][j]\)都只有一条路径可走,对于\(dp[i][j]=dp[i-1][j]+dp[i][j-1]\)

1
2
3
4
5
6
7
8
9
10
11
class Solution:
def uniquePaths(self, m: int, n: int) -> int:
down = 0
right = 0
dp = [[1]*n] + [[1]+[0]*(n-1) for _ in range(m-1)]

for i in range(1,m):
for j in range(1,n):
dp[i][j] = dp[i-1][j] + dp[i][j-1]

return dp[-1][-1]

优化空间:按行遍历

1
2
3
4
5
6
7
8
class Solution:
def uniquePaths(self, m: int, n: int) -> int:
cur = [1] * n
for i in range(1, m):
for j in range(1, n):
cur[j] += cur[j-1]
return cur[-1]


不同路径
http://example.com/2024/04/30/不同路径/
作者
Z Z
发布于
2024年4月30日
许可协议