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;
}
};