Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static ArrayList<Integer> kth_largest(Integer k, ArrayList<Integer> initial_stream, ArrayList<Integer> append_stream) {
- // Write your code here.
- ArrayList<Integer> result = new ArrayList<Integer>();
- PriorityQueue<Integer> maxHeap = new PriorityQueue<Integer>((a, b) -> b - a);
- for (int num : initial_stream) {
- maxHeap.offer(num);
- }
- List<Integer> inter = new ArrayList<Integer>();
- for (int val : append_stream) {
- maxHeap.offer(val);
- int cnt = k;
- int kth = maxHeap.peek();
- while (cnt-- > 0) {
- kth = maxHeap.poll();
- inter.add(kth);
- }
- result.add(kth);
- for (int v : inter) {
- maxHeap.offer(v);
- }
- inter.clear();
- }
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement