题解 | #走方格的方案数#

走方格的方案数

https://www.nowcoder.com/practice/e2a22f0305eb4f2f9846e7d644dba09b

# !/usr/bin/env python3
# -*- coding: utf-8 -*-
__author__ = 'tianyi'
__date__ = '2024/3/24 09:15 '
__file__ = 'HW_HJ91.py'

import sys
String1 = sys.stdin.readline().rstrip()
List1 = String1.split()
#动态规划走方格,输出走到右下角的路径数
#输入:m n
#输出:路径数
def dp(n, m):
    dp = [[0 for i in range(m+1)] for j in range(n+1)]
    for i in range(n+1):
        for j in range(m+1):
            if i == 0 or j == 0:
                dp[i][j] = 1
            else:
                dp[i][j] = dp[i-1][j] + dp[i][j-1]
    return dp[n][m]
print(dp(int(List1[0]), int(List1[1])))

#解释代码 : 用dp[i][j]表示走到(i,j)的路径数,dp[i][j] = dp[i-1][j] + dp[i][j-1],即走到(i,j)的路径数等于走到(i-1,j)的路径数加上走到(i,j-1)的路径数。 # dp[0][j] = dp[i][0] = 1,即第一行和第一列的路径数都是1。 最后返回dp[n][m]即可。    时间复杂度O(n*m),空间复杂度O(n*m)。
全部评论

相关推荐

白火同学:能。我当初应届沟通了1200,收简历50,面试10左右吧,加油投吧
投了多少份简历才上岸
点赞 评论 收藏
分享
吴offer选手:HR:我KPI到手了就行,合不合适关我什么事
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务