python输出由m行n列组成网格的左上角到右下角的唯一路径数
时间: 2024-01-24 18:02:54 浏览: 36
可以使用动态规划来解决这个问题。假设我们定义一个二维数组 dp,其中 dp[i][j] 表示从左上角到达网格中第 i 行第 j 列的位置的唯一路径数。
初始化 dp 的第一行和第一列为 1,因为只有一条路径可以到达这些位置。
然后,我们从第二行和第二列开始遍历网格,对于每个位置 (i, j),可以通过从上方 (i-1, j) 或者从左边 (i, j-1) 的位置到达该位置。所以,dp[i][j] = dp[i-1][j] + dp[i][j-1]。
最后,dp[-1][-1] 就表示从左上角到右下角的唯一路径数。
以下是实现这个功能的示例代码:
```python
def uniquePaths(m, n):
dp = [[0] * n for _ in range(m)]
# 初始化第一行和第一列为1
for i in range(m):
dp[i][0] = 1
for j in range(n):
dp[0][j] = 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]
```
你可以调用这个函数并传入网格的行数 m 和列数 n 来测试它。例如:
```python
m = 3
n = 4
result = uniquePaths(m, n)
print(result) # 输出 10
```
在上述示例中,3 行 4 列的网格共有 10 条唯一路径。