---
# System prepended metadata

title: code tpl
tags: [mock interview, 面試]

---

# code tpl


950. Reveal Cards In Increasing Order

{%hackmd theme-dark %}
original:
[17,13,11,2,3,5,7]

ans:
[2,13,3,11,5,17,7]

two op: pickup first and pushback sec
2   
3, 11, 5, 17, 7, 13

2, 3
5, 17, 7, 13, 11

2,3,5
7, 13, 11, 17
....
[2, 3, 5, 7, 11, 13, 17]
[2, 13, 3, 11, 5, 17, 7]
[2, 13,3,11,5,17,7]

11 13 17

0 1 2 3 4 5 6
simulate idxes put in sorted value
dequeue
0 ->2 [2 3 4 5 6 1] 
2 [4 5 6 1 3]
4 [6 1 3 5]
6 [3 5 1]
3 [1 5] 
1 [5]
5

```python=
class Solution(object):
    def deckRevealedIncreasing(self, deck):
        """
        :type deck: List[int]
        :rtype: List[int]
        """
        ans = [0]*len(deck)
        idxQ = deque([n for n in range(len(deck))])
        # [0 1 2 3 4 5 6] idxQ
        
        deck.sort()
        # [2, 3, 5, 7, 11, 13, 17]
        sortedIdx = 0
        while idxQ:
            idx1 = idxQ.popleft()
            ans[idx1] = deck[sortedIdx]
            sortedIdx += 1
            if idxQ:
                idx2 = idxQ.popleft()
                idxQ.append(idx2)
                
        return ans
        # N: number of deck elements
        # TC: O(NLogN)
        # SC: O(N)
        
```

###### tags: `mock interview` `面試`