zoukankan      html  css  js  c++  java
  • 1688. Count of Matches in Tournament

    package LeetCode_1688
    
    /**
     * 1688. Count of Matches in Tournament
    https://leetcode.com/problems/count-of-matches-in-tournament/
    
    You are given an integer n, the number of teams in a tournament that has strange rules:
    1. If the current number of teams is even, each team gets paired with another team.
        A total of n / 2 matches are played, and n / 2 teams advance to the next round.
    2. If the current number of teams is odd, one team randomly advances in the tournament, and the rest gets paired.
        A total of (n - 1) / 2 matches are played, and (n - 1) / 2 + 1 teams advance to the next round.
    Return the number of matches played in the tournament until a winner is decided.
     * */
    class Solution {
        /*
        * solution: follow by rules, Time:O(logn), Space:O(1)
        * */
        fun numberOfMatches(n_: Int): Int {
            var n = n_
            var matches = 0
            while (n != 1) {
                if (n % 2 == 0) {
                    n /= 2
                    matches += n
                } else {
                    n = (n - 1) / 2
                    matches += n
                    n += 1
                }
            }
            return matches
        }
    }
  • 相关阅读:
    PS封装ES流
    win7无法删除文件夹,提示“找不到该项目”
    声明
    ZR#1005
    ZR#1004
    ZR#1009
    ZR#1008
    ZR#1015
    ZR#1012
    ZR#985
  • 原文地址:https://www.cnblogs.com/johnnyzhao/p/14128320.html
Copyright © 2011-2022 走看看