lintcode练习- 114. 不同的路径

版权声明:原创部分都是自己总结的,如果转载请指明出处。觉得有帮助的老铁,请双击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]

猜你喜欢

转载自blog.csdn.net/qq_36387683/article/details/81866734