Find the Players Who Never Receive the Ball in a Circular Game  
IntuitionThe game follows a circular sequence where each step size increases by k after each move. Players who are never visited are the "losers." We need an ef

# **Intuition**  
The game follows a **circular sequence** where each step size increases by `k` after each move. Players who are never visited are the "losers." We need an efficient way to track visited players while ensuring we correctly handle the circular movement.

# **Approach**  
- Use a **Boolean list (`visited`)** to track players who have received the ball.
- Start from player **1 (index 0)** and move by `k` steps, incrementing the step size by `k` after each move.
- Stop when a player is **visited twice**, indicating a loop.
- Return the list of players who were **never visited**.

# **Complexity**  
- **Time complexity:**  
  $$O(n)$$ – Each player is visited at most once.  
- **Space complexity:**  
  $$O(n)$$ – We use a Boolean list of size `n`.

# **Code**  
```python
from typing import List

class Solution:
    def circularGameLosers(self, n: int, k: int) -> List[int]:
        visited = [False] * n
        i, step = 0, k
        while not visited[i]:
            visited[i] = True
            i = (i + step) % n
            step += k
        return [j + 1 for j in range(n) if not visited[j]]
```

This approach ensures an **efficient and optimized** solution.
['Array', 'Hash Table', 'Math', 'Ordered Map', 'Simulation', 'Python3']