机器人走方格-51nod解题

M * N的方格,一个机器人从左上走到右下,只能向右或向下走。

有多少种不同的走法?

注意:给定 M, N 是一个正整数。

示例
输入: 1行, 2个数M,N,中间用空格隔开。(2 <= m,n <= 1000)
输出: 输出走法的数量。

输入样例

2 3

输出样例

3
#解一
def solve(M: int, N: int) -> int:
    if M == 1 or N == 1:
        return 1
    return solve(M-1, N) + solve(M, N-1)
#解二
def solve(M: int, N: int) -> int:
    # 生成一个 M 行, N列的二维数组
    dp = [[None  for j in range(N)]for i in range(M)]

    # 初始化第一行
    for i in range(N):
        dp[0][i] = 1

    # 初始化第一列
    for i in range(M):
        dp[i][0] = 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]
posted @ 2021-01-30 20:39  EdenWu  阅读(100)  评论(0编辑  收藏  举报