Skip to content

3625. Stone Removal Game


3625. Stone Removal Game

Easy


Alice and Bob are playing a game where they take turns removing stones from a pile, with Alice going first.

  • Alice starts by removing exactly 10 stones on her first turn.
  • For each subsequent turn, each player removes exactly 1 fewer stone than the previous opponent.

The player who cannot make a move loses the game.

Given a positive integer n, return true if Alice wins the game and false otherwise.

 

Example 1:

Input: n = 12

Output: true

Explanation:

  • Alice removes 10 stones on her first turn, leaving 2 stones for Bob.
  • Bob cannot remove 9 stones, so Alice wins.

Example 2:

Input: n = 1

Output: false

Explanation:

  • Alice cannot remove 10 stones, so Alice loses.

 

Constraints:

  • 1 <= n <= 50

Solution

class Solution {
    public boolean canAliceWin(int n) {
        if (n < 10) return false;
        int turn = 2, req = 9;
        n -= 10;
        while (n >= req) {
            n -= req;
            req--;
            if (turn == 2) turn = 1;
            else turn = 2;
        }
        return turn == 2;
    }
}

Complexity Analysis

  • Time Complexity: O(?)
  • Space Complexity: O(?)

Explanation

[Add detailed explanation here]