按遞增順序顯示卡牌
類似約瑟夫環的操作
class Solution {
public:
vector<int> deckRevealedIncreasing(vector<int>& deck) {
//約瑟夫環的使用模拟抽牌就行了,棧模拟放牌
sort(deck.begin(),deck.end());
int len=deck.size();
int count=0;
int i=0;
vector<int> result(len,0);//使用的是存儲的東西
vector<int> visit(len,0);//使用通路的東西
while(true)
{
result[i]=deck[count];
// result[count]=deck[i]; 将 i 和count換位置,這裡可以複原約瑟夫環的原始排好序的資料
visit[i]=1;
++count;
if(count==len)
break;
i=(i+1)%len;
while(visit[i]!=0)
{
i=(i+1)%len;
}
i=(i+1)%len;
while(visit[i]!=0)
i=(i+1)%len;
}
return result;
}
};