Skip to main content
Back to problems
#1823
Medium Algorithms

Find the winner of the circular game

Array Math Recursion Queue Simulation
82.2% acceptance
Feb 25, 2026
4090
127
There are n friends that are playing a game. The friends are sitting in a circle and are numbered from 1 to n in clockwise order. The rules of the game are as follows: Start at the 1st friend. Count the next k friends in the clockwise direction including the friend you started at. The last friend you counted leaves the circle and loses the game. If there is still more than one friend in the circle, go back to step 2 starting from the friend immediately clockwise of the friend who just lost and repeat. Else, the last friend in the circle wins the game. Given the number of friends, n, and an integer k, return the winner of the game.

Solution

Rust
Time O(n)
Space O(1)
LeetCode
solution.rs
impl Solution {
  pub fn find_the_winner(n: i32, k: i32) -> i32 {
    let mut pos = 0i32;
    for i in 2..=n {
      pos = (pos + k) % i;
    }
    pos + 1
  }
}