滴滴笔试题:小球排序

import sys

values = sys.stdin.readline().strip().split()
np = int(values[0])
nq = int(values[1])
nr = int(values[2])

def countWays(p ,q, r, last):
    if p < 0 or q < 0 or r < 0:
        return 0
    if p == 1 and q == 0 and r == 0 and last == 0:
        return 1
    if p == 0 and q == 1 and r == 0 and last == 1:
        return 1
    if p == 0 and q == 0 and r == 1 and last == 2:
        return 1
    if last == 0:
        return countWays(p-1, q, r, 1) + countWays(p-1, q, r, 2)
    if last == 1:
        return countWays(p, q-1, r, 0) + countWays(p, q-1, r, 2)
    if last == 2:
        return countWays(p, q, r-1, 0) + countWays(p, q, r-1, 1)

def countUtil(p, q, r):
    return countWays(p, q, r, 0) + countWays(p, q, r, 1) + countWays(p, q, r, 2)

print(countUtil(np, nq, nr))
#滴滴#
全部评论
会超时的
点赞 回复 分享
发布于 2018-09-19 11:41
666
点赞 回复 分享
发布于 2018-09-19 10:36
楼主你这样写不会超时吗… 我用Java写递归是超时的。
点赞 回复 分享
发布于 2018-09-19 10:18
哈哈哈,膜一下
点赞 回复 分享
发布于 2018-09-19 10:09
感谢!一针见血!
点赞 回复 分享
发布于 2018-09-19 10:09
请问能否讲解一下思路
点赞 回复 分享
发布于 2018-09-19 10:07

相关推荐

07-17 11:50
门头沟学院 Java
投递腾讯等公司8个岗位
点赞 评论 收藏
分享
码农索隆:想看offer细节
点赞 评论 收藏
分享
07-15 14:14
门头沟学院 Java
7.10投递7.15感谢信
投递地平线等公司7个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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