1
class Solution {
2
public int[] deckRevealedIncreasing(int[] deck) { // deck=[ 17,13,11,2,3,5,7 ]
3
Queue<Integer> ql = new LinkedList<Integer>();
4
for (int i = 0; i < deck.length; i++) ql.add(i);
5
// now the queue is [ 0, 1, 2, 3, 4, 5, 6 ]
6

7
int[] ans = new int[deck.length];
8
int k = 0;
9
// index : 0 1 2 3 4 5 6
10
Arrays.sort(deck); // deck=[ 2 ,3 ,5, 7, 13, 11, 17 ]
11

12
while (!ql.isEmpty()) {
13
ans[ql.peek()] = deck[k];
14
ql.poll();
15
k++;
16
if (!ql.isEmpty()) {
17
ql.add(ql.peek());
18
ql.poll();
19
}
20
}
21
/*
22
ql=[0,1,2,3,4,5,6]
23
k=0;
24
ql=[2,3,4,5,6,1]
25
ans=[2,0,0,0,0,0,0] ans[0]=deck[0]
26
k=1;
27
ql=[4,5,6,1,3]
28
ans=[2,13,0,0,0,0,0] ans[2]=deck[1]
29
k=2;
30
ql=[6,1,3,5]
31
ans=[2,13,3,0,0,0,0] ans[4]=deck[2]
32
k=3;
33
ql=[3,5,1]
34
ans=[2,13,3,11,0,0,0] ans[6]=deck[3]
35
k=4;
36
ql=[1,5]
37
ans=[2,13,3,11,5,0,0] ans[3]=deck[4]
38
k=5;
39
ql=[5]
40
ans=[2,13,3,11,5,17,0] ans[1]=deck[5]
41
k=6;
42
ql=[]
43
ans=[2,13,3,11,5,17,7] ans[5]=deck[6]
44
*/
45

46
return ans;
47
}
48
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0