简单到不能再简单的题目,哼嗯? | 豆包MarsCode AI刷题

80 阅读1分钟

比赛配对问题

问题描述

小R正在组织一个比赛,比赛中有 n 支队伍参赛。比赛遵循以下独特的赛制:

  • 如果当前队伍数为 偶数,那么每支队伍都会与另一支队伍配对。总共进行 n / 2 场比赛,且产生 n / 2 支队伍进入下一轮。
  • 如果当前队伍数为 奇数,那么将会随机轮空并晋级一支队伍,其余的队伍配对。总共进行 (n - 1) / 2 场比赛,且产生 (n - 1) / 2 + 1 支队伍进入下一轮。

小R想知道在比赛中进行的配对次数,直到决出唯一的获胜队伍为止。


测试样例

样例1:

输入:n = 7
输出:6

样例2:

输入:n = 14
输出:13

样例3:

输入:n = 1
输出:0

虽然是个简单题~但这也太简单了吧,跟某些简单题相比,它简直就是超超超超超超超级简单题。 结果输入减一就行,因为淘汰了多少人就配对了多少次,而最后结果就是只有一个是第一名不被淘汰。

代码如下

 def solution(n: int) -> int:
    # write code here
    return n-1

if __name__ == '__main__':
    print(solution(7) == 6)
    print(solution(14) == 13)
    print(solution(1) == 0)