Skip to content

Commit 78a98a9

Browse files
committed
Time: 92 ms (10.76%), Space: 88.9 MB (87.34%) - LeetHub
1 parent e798e1b commit 78a98a9

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
class Solution {
2+
public int maxRemoval(int[] nums, int[][] queries) {
3+
Arrays.sort(queries, (a, b) -> Integer.compare(a[0], b[0]));
4+
PriorityQueue<Integer> available = new PriorityQueue<>(Collections.reverseOrder());
5+
PriorityQueue<Integer> assigned = new PriorityQueue<>();
6+
int count = 0;
7+
for (int time = 0, k = 0; time < nums.length; time++) {
8+
while (!assigned.isEmpty() && assigned.peek() < time)
9+
assigned.poll();
10+
while (k < queries.length && queries[k][0] <= time)
11+
available.add(queries[k++][1]);
12+
while (assigned.size() < nums[time]
13+
&& !available.isEmpty()
14+
&& available.peek() >= time) {
15+
assigned.add(available.poll());
16+
count++;
17+
}
18+
if (assigned.size() < nums[time])
19+
return -1;
20+
}
21+
return queries.length - count;
22+
}
23+
}

0 commit comments

Comments
 (0)