Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private static List<String> find(List<String> unordered, int from, int to) {
- if (from < unordered.size() / 2) {
- PriorityQueue<String> queue = new PriorityQueue<>(unordered);
- for (int i=0; i<from; i++) queue.remove();
- List<String> result = new ArrayList<>();
- for (int i=from; i<to; i++) {
- result.add(queue.remove());
- }
- return result;
- }
- PriorityQueue<String> queue = new PriorityQueue<>(unordered.size(), ((Comparator<String>)String::compareTo).reversed());
- queue.addAll(unordered);
- for (int i=unordered.size()-1; i>=to; i--) queue.remove();
- List<String> result = new ArrayList<>();
- for (int i=to-1; i>=from; i--) {
- result.add(queue.remove());
- }
- Collections.reverse(result);
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement