zl程序教程

您现在的位置是:首页 >  Java

当前栏目

菜鸟的每日力扣系列——1688. 比赛中的配对次数。脑筋急转弯?

2023-02-18 16:23:57 时间

力扣1688. 比赛中的配对次数

拿到这个题,从给出的实例结果往回推算,哎?好像和奇偶也没多大关系啊,游戏规则是每次配对都会淘汰一支队伍,而一共有 n 支队伍,最后只会剩下一支队伍获胜,所以,会淘汰 n-1 支队伍,也就是会配对 n-1 次。那不就是n-1了?

def numberOfMatches(n: int) -> int:
    return n-1

啪一下,很快啊!提交后发现通过了,果然是这样的。(被昨天的图+BFS吓怕了hhh)

秉持着不水文的原则,我们按游戏规则来实现下代码:

def numberOfMatches(n: int) -> int:
    res = 0
    while n > 1:
      if n % 2 == 0:
          res += n // 2
          n = n // 2
      else:
          res += n // 2
          n = n // 2 + 1
    return res

END