Reveal Cards In Increasing Order

给一个数组, 里面是各种unique的数字, 代表卡牌, 给一系列规则,一直翻上边的数字, 然后把后边的数字放到最后, 求如何改变使得原数组生成递增的序列.

这题就是从后往前想, 模拟一下过程即可.

class Solution {
public:
    vector<int> deckRevealedIncreasing(vector<int>& deck) {
        sort(deck.begin(), deck.end());
        deque<int> tmp;
        for(int i = deck.size() - 1; i >= 0; i--) {
            if(tmp.size() == 0){
                tmp.push_back(deck[i]);
            }else{
                int t = tmp.back();
                tmp.pop_back();
                tmp.push_front(t);
                tmp.push_front(deck[i]);
            }
        }
        vector<int> res;
        for(auto tt : tmp){
            res.push_back(tt);
        }
        return res;
    }
};