滴滴笔试题:小球排序

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 10:07
感谢!一针见血!
点赞 回复
分享
发布于 2018-09-19 10:09
滴滴
校招火热招聘中
官网直投
哈哈哈,膜一下
点赞 回复
分享
发布于 2018-09-19 10:09
楼主你这样写不会超时吗… 我用Java写递归是超时的。
点赞 回复
分享
发布于 2018-09-19 10:18
666
点赞 回复
分享
发布于 2018-09-19 10:36
会超时的
点赞 回复
分享
发布于 2018-09-19 11:41

相关推荐

投递腾讯云智研发等公司7个岗位
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务