File tree Expand file tree Collapse file tree 1 file changed +31
-0
lines changed Expand file tree Collapse file tree 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