nowcoder 排队买票

题目

2n个人排队买票,n个人拿5块钱,n个人拿10块钱,票价是5块钱1张,每个人买一张票,售票员手里没有零钱,问有多少种排队方法让售票员可以顺利卖票。
给定一个整数n,请返回所求的排队方案个数。保证结果在int范围内。
测试样例:
1
返回:1

思路

卡特兰数。

代码

class BuyTickets:
    def get_arrange(self, n, num):
        count = 1
        num1, num2 = 1, 1
        while count <= num:
            num1 *= n
            n -= 1
            num2 *= count
            count += 1
        return num1 // num2
    def countWays(self, n):
        # write code here
        return self.get_arrange(2 * n, n) // (n + 1)

你可能感兴趣的:(算法-排列组合,OJ-nowcoder)