解法一
将原数组进行升序排列,然后模拟约瑟夫问题的过程,从小到大依次将值加入。
import java.util.Arrays;
class Solution {
public int[] deckRevealedIncreasing(int[] deck) {
int[] ans = new int[deck.length];
Arrays.sort(deck);
ans[0] = deck[0];
int len = 1;
int i = 1;
int k = 0;
while (len < deck.length) {
if (ans[i] == 0) {
k++;
}
if (k == 2) {
ans[i] = deck[len];
len++;
k = 0;
}
i = (i + 1) % deck.length;
}
return ans;
}
}