1
class Solution {
2
public int[] smallestTrimmedNumbers(String[] nums, int[][] queries) {
3

4
if (nums.length == 0) return new int[0];
5

6
int[] result = new int[queries.length];
7
int strLen = nums[0].length();
8
int[] index = new int[1];
9

10
PriorityQueue<Integer> queue =
11
new PriorityQueue<>(
12
(a, b) -> {
13
for (int i = index[0]; i < strLen; i++) {
14
if (nums[a].charAt(i) != nums[b].charAt(i))
15
return nums[b].charAt(i) - nums[a].charAt(i);
16
}
17

18
return b - a;
19
});
20

21
for (int i = 0; i < queries.length; i++) {
22
index[0] = strLen - queries[i][1];
23
queue.clear();
24

25
for (int j = 0; j < nums.length; j++) {
26
queue.add(j);
27
if (queue.size() > queries[i][0]) queue.poll();
28
}
29

30
result[i] = queue.poll();
31
}
32

33
return result;
34
}
35
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0