LeetCode-in-Java

1688. Count of Matches in Tournament

Easy

You are given an integer n, the number of teams in a tournament that has strange rules:

Return the number of matches played in the tournament until a winner is decided.

Example 1:

Input: n = 7

Output: 6

Explanation: Details of the tournament:

Total number of matches = 3 + 2 + 1 = 6.

Example 2:

Input: n = 14

Output: 13

Explanation: Details of the tournament:

Total number of matches = 7 + 3 + 2 + 1 = 13.

Constraints:

Solution

public class Solution {
    public int numberOfMatches(int n) {
        int matches = 0;
        while (n > 1) {
            if (n % 2 == 0) {
                matches += n / 2;
                n /= 2;
            } else {
                matches += (n - 1) / 2;
                n = (n + 1) / 2;
            }
        }
        return matches;
    }
}