按递增顺序显示卡牌
类似约瑟夫环的操作
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;
}
};