Maximum Number of Coins You Can Get
Split piles of coins into groups of 3: Alice gets max, you get second, Bob gets min. Maximize your coins.
Example 1
Input: piles=[2,4,1,2,7,8] → Output: 9. Split into (1,2,4) and (2,7,8). You get 2+7=9.
Example 2
Input: piles=[2,4,5] → Output: 4
Solution Approach
Sort piles. In each triplet (from sorted), you always take second largest. Bob takes the smallest pile.
- Sort piles
- Bob takes first n/3 piles (smallest)
- You take every other pile from position n/3: indices n/3, n/3+2, n/3+4...
- Sum your piles
Java
public int maxCoins(int[] piles) {
Arrays.sort(piles);
int n = piles.length, sum = 0;
for (int i = n / 3; i < n; i += 2) sum += piles[i];
return sum;
}
- Time Complexity: O(n log n)
- Space Complexity: O(1)