FastPrepFastPrep
Problem Brief

Tournament Rounds by Rank

FULLTIMEPHONE SCREEN
See Uber online assessment and hiring insights

You are given an array ranks representing players in tournament order. A smaller number means a stronger rank.

In each round, adjacent players compete: indices 0 and 1, indices 2 and 3, and so on. The player with the smaller rank number advances to the next round. If a round has an odd number of players, the last player advances automatically.

Return the list of rounds after each elimination round. Each inner array should contain the ranks that advanced from that round, in order. Continue until one player remains.

Function Description

Complete the function simulateTournamentRounds in the editor.

simulateTournamentRounds has the following parameter:

  1. int ranks[]: player ranks in the initial bracket order

Returns

int[][]: the advancing ranks after each round

1Example 1

Input
ranks = [1, 2, 3, 4, 5, 6, 7, 8]
Output
[[1, 3, 5, 7], [1, 5], [1]]
Explanation
In the first round, the winners are 1, 3, 5, and 7. Then 1 and 5 advance. Finally, 1 wins.

2Example 2

Input
ranks = [3, 1, 2]
Output
[[1, 2], [1]]
Explanation
Player 1 beats player 3. Player 2 has no opponent in the first round and advances automatically.

Constraints

Limits and guarantees your solution can rely on.

  • Rank values are distinct.
  • A smaller rank number represents a stronger player.
  • If a round has an odd number of players, the last player advances automatically.
public int[][] simulateTournamentRounds(int[] ranks) {
  // write your code here
}
Input

ranks

[1, 2, 3, 4, 5, 6, 7, 8]

Output

[[1, 3, 5, 7], [1, 5], [1]]

Sign in to submit your solution.