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:
Space:

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:
Space: