Problem
Alice and Bob play a game with piles of stones. There are an even number of piles arranged in a row, and each pile has a positive integer number of stones piles[i]
.
The objective of the game is to end with the most stones. The total number of stones across all the piles is odd, so there are no ties.
Alice and Bob take turns, with Alice starting first. Each turn, a player takes the entire pile of stones either from the beginning or from the end of the row. This continues until there are no more piles left, at which point the person with the most stones wins.
Assuming Alice and Bob play optimally, return true
if Alice wins the game, or false
if Bob wins.
Examples
Example 1:
|
|
Example 2:
|
|
Solution
Method 1 - Alice always wins
The problem involves a game theory scenario where Alice and Bob play optimally with piles of stones. The key insights here are:
- Number of piles is even.
- Total number of stones is odd, ensuring no tie.
- Optimal play by both Alice and Bob.
Since the number of piles is even and both play optimally, it defaults mathematically that the starting player (Alice) always has a winning strategy. Here’s a step-by-step reasoning for why Alice always wins:
- Since Alice can always choose either the first or the last pile, she can see all piles and predict the results of future moves.
- With an even number of piles, Alice can always choose a strategy that leaves Bob in a situation where Bob cannot influence the majority of high-value piles due to their alternate turn structure.
Given the constraints provided, Alice can always take an approach to ensure she ends up with more stones than Bob. Thus, the result of the function should return true
.
Code
|
|
|
|
Complexity
- Time:
O(1)
- Space:
O(1)