Skip to content

Commit b2072a4

Browse files
authored
Added Advantage Shuffle.java
1 parent e656aca commit b2072a4

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

Medium/Advantage Shuffle.java

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
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+
}

0 commit comments

Comments
 (0)