LeetCode 950, Medium. Topics: Array, Queue, Sorting, Simulation. View on LeetCode.
Generate this problem as a practice environment: tested reference solution, 12 parametrized pytest cases, and a playground notebook:
Problem
<p>You are given an integer array <code>deck</code>. There is a deck of cards where every card has a unique integer. The integer on the <code>i<sup>th</sup></code> card is <code>deck[i]</code>.</p>
<p>You can order the deck in any order you want. Initially, all the cards start face down (unrevealed) in one deck.</p>
<p>You will do the following steps repeatedly until all cards are revealed:</p>
<ol>
<li>Take the top card of the deck, reveal it, and take it out of the deck.</li>
<li>If there are still cards in the deck then put the next top card of the deck at the bottom of the deck.</li>
<li>If there are still unrevealed cards, go back to step 1. Otherwise, stop.</li>
</ol>
<p>Return <em>an ordering of the deck that would reveal the cards in <strong>increasing</strong> order</em>.</p>
<p><strong>Note</strong> that the first entry in the answer is considered to be the top of the deck.</p>
Examples
Constraints
- 1 <= deck.length <= 1000
- 1 <= deck[i] <= 10^6
- All the values of deck are unique.
Solution
Reference implementation from solution.py on GitHub, full suite in test_solution.py:
Complexity
NeetCode All. Last modified on September 7, 2026