数据结构LeetCode:950.按递增顺序显示卡牌
950.按递增顺序显示卡牌
思路是,反过来想,我们只知道最后输出的结果,是本来序列的递增形式,要求解出这个这种牌组顺序。可以定义一个表示下标队列deque
我的代码:
1 class Solution { 2 public: 3 vector<int> deckRevealedIncreasing(vector<int>& deck) { 4 int n = deck.size(); 5 sort(deck.begin(), deck.end()); 6 vector<int>ans(n); 7 deque<int>num(n); 8 for (int i = 0; i < n; ++i)num[i] = i;//代表次序的队列 利用到了deque的容易移动的性质,且可以访问下标 9 int be = 0; 10 for (int i = 0; i < n; ++i) 11 { 12 ans[num.front()] = deck[i]; 13 num.pop_front(); 14 if (!num.empty()) 15 { 16 num.push_back(num.front()); 17 num.pop_front(); 18 } 19 20 } 21 return ans; 22 } 23 };