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

走方格的方案数

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

给出Python3版本代码:

方法一:递归

def f(n, m):
    if n == 0 or m == 0:
        return 1
    else:
        return f(n - 1, m) + f(n, m - 1)

while True:
    try:
        n, m = map(int, input().split())
        print(f(n, m))
        
    except:
        break


方法二:动态规划

while True:
    try:
        n, m = map(int, input().split())
        dp = [[0 for i in range(m + 1)] for j in range(n + 1)]
        for i in range(0, n + 1):
            for j in range(0, m + 1):
                if i == 0 and j == 0:
                    dp[i][j] = 1
                elif i == 0:
                    dp[i][j] = dp[i][j - 1]
                elif j == 0:
                    dp[i][j] = dp[i - 1][j]
                else:
                    dp[i][j] = dp[i - 1][j] + dp[i][j - 1]
        print(dp[n][m])
        
    except:
        break


方法三:数学排列组合

while True:
    try:
        n, m = map(int, input().split())
        a, b= 1, 1
        for i in range(1, n + 1):
            a *= m + i  # 分子
            b *= i  # 分母
        print(a // b)
    except:
        break


全部评论

相关推荐

点赞 评论 收藏
分享
Southyeung:我说一下我的看法(有冒犯实属抱歉):(1)简历不太美观,给我一种看都不想看的感觉,感觉字体还是排版问题;(2)numpy就一个基础包,机器学习算法是什么鬼?我感觉你把svm那些写上去都要好一点。(2)课程不要写,没人看,换成获奖经历;(3)项目太少了,至少2-3个,是在不行把网上学习的也写上去。
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

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