Class Solution

  • All Implemented Interfaces:

    
    public final class Solution
    
                        

    1823 - Find the Winner of the Circular Game\.

    Medium

    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. More formally, moving clockwise from the <code>i<sup>th</sup></code> friend brings you to the <code>(i+1)<sup>th</sup></code> friend for 1 &lt;= i &lt; n, and moving clockwise from the <code>n<sup>th</sup></code> friend brings you to the <code>1<sup>st</sup></code> friend.

    The rules of the game are as follows:

    • Start at the <code>1<sup>st</sup></code> friend.

    • Count the next k friends in the clockwise direction including the friend you started at. The counting wraps around the circle and may count some friends more than once.

    • 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.

    Example 1:

    Input: n = 5, k = 2

    Output: 3

    Explanation: Here are the steps of the game:

    • Start at friend 1.

    • Count 2 friends clockwise, which are friends 1 and 2.

    • Friend 2 leaves the circle. Next start is friend 3.

    • Count 2 friends clockwise, which are friends 3 and 4.

    • Friend 4 leaves the circle. Next start is friend 5.

    • Count 2 friends clockwise, which are friends 5 and 1.

    • Friend 1 leaves the circle. Next start is friend 3.

    • Count 2 friends clockwise, which are friends 3 and 5.

    • Friend 5 leaves the circle. Only friend 3 is left, so they are the winner.

    Example 2:

    Input: n = 6, k = 5

    Output: 1

    Explanation: The friends leave in this order: 5, 4, 6, 2, 3. The winner is friend 1.

    Constraints:

    • 1 &lt;= k &lt;= n &lt;= 500

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
    • Field Summary

      Fields 
      Modifier and Type Field Description
    • Constructor Summary

      Constructors 
      Constructor Description
      Solution()
    • Enum Constant Summary

      Enum Constants 
      Enum Constant Description
    • Method Summary

      Modifier and Type Method Description
      final Integer findTheWinner(Integer n, Integer k)
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait