版权声明:原创部分都是自己总结的,如果转载请指明出处。觉得有帮助的老铁,请双击666! https://blog.csdn.net/qq_36387683/article/details/81866734
114. 不同的路径
有一个机器人的位于一个 m × n 个网格左上角。
机器人每一时刻只能向下或者向右移动一步。机器人试图达到网格的右下角。
问有多少条不同的路径?
样例
给出 m = 3
和 n = 3
, 返回 6
.
给出 m = 4
和 n = 5
, 返回 35
.
注意事项
n和m均不超过100
解题思路:
如代码注释
class Solution:
"""
@param m: positive integer (1 <= m <= 100)
@param n: positive integer (1 <= n <= 100)
@return: An integer
"""
def uniquePaths(self, m, n):
# write your code here
#定义一个相同形状的数组, 用来记录每格的路径可能数
dp = [[0]*m for _ in range(n)]
# 因为只能向右或者向下移动,所以第一行和第一列只能由上一位移动来,所以他们的路径可能数只有1
for i in range(1, m):
dp[0][i] = 1
for i in range(1, n):
dp[i][0] = 1
# 记录其他位置的路径可能和,可以从上或者右,路径和为左边和上边的路径和
for i in range(1, n):
for j in range(1, m):
dp[i][j] = dp[i][j-1]+dp[i-1][j]
return dp[n-1][m-1]