File tree 1 file changed +31
-0
lines changed
1 file changed +31
-0
lines changed Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ public int [] advantageCount (int [] A , int [] B ) {
3
+ TreeMap <Integer , Integer > map = new TreeMap <>();
4
+ for (int num : A ) {
5
+ map .put (num , map .getOrDefault (num , 0 ) + 1 );
6
+ }
7
+ int [] result = new int [A .length ];
8
+ Arrays .fill (result , Integer .MIN_VALUE );
9
+ List <Integer > indexesNotPopulated = new ArrayList <>();
10
+ for (int i = 0 ; i < B .length ; i ++) {
11
+ Integer upper = map .higherKey (B [i ]);
12
+ if (upper != null ) {
13
+ result [i ] = upper ;
14
+ map .put (upper , map .get (upper ) - 1 );
15
+ if (map .get (upper ) == 0 ) {
16
+ map .remove (upper );
17
+ }
18
+ } else {
19
+ indexesNotPopulated .add (i );
20
+ }
21
+ }
22
+ Iterator <Integer > iterator = indexesNotPopulated .iterator ();
23
+ for (Integer key : map .keySet ()) {
24
+ int value = map .get (key );
25
+ while (value -- > 0 ) {
26
+ result [iterator .next ()] = key ;
27
+ }
28
+ }
29
+ return result ;
30
+ }
31
+ }
You can’t perform that action at this time.
0 commit comments