Approach 1 class Solution: def deckRevealedIncreasing(self, deck: List[int]) -> List[int]: n = len(deck) result = [-1] * n riq = deque(range(n)) deck = sorted(deck) for card in deck: ri = riq.popleft() result[ri] = card if riq: riq.append(riq.popleft()) return result Complexity Time: O(nlogn) Space: O(n) Approach 2: Idiomatic from collections import deque class Solution: def deckRevealedIncreasing(self, deck: List[int]) -> List[int]: d = deque() for card in sorted(deck, reverse=True): d.rotate() d.appendleft(card) return list(d) Complexity Time: O(nlogn) Space: O(n)