Advertisement
yimengael

K-th Largest In A Stream

Feb 18th, 2022
873
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.90 KB | None | 0 0
  1.     static ArrayList<Integer> kth_largest(Integer k, ArrayList<Integer> initial_stream, ArrayList<Integer> append_stream) {
  2.         // Write your code here.
  3.         ArrayList<Integer> result = new ArrayList<Integer>();
  4.        
  5.         PriorityQueue<Integer> maxHeap = new PriorityQueue<Integer>((a, b) -> b - a);
  6.         for (int num : initial_stream) {
  7.             maxHeap.offer(num);
  8.         }
  9.        
  10.         List<Integer> inter = new ArrayList<Integer>();
  11.         for (int val : append_stream) {
  12.             maxHeap.offer(val);
  13.             int cnt = k;
  14.             int kth = maxHeap.peek();
  15.             while (cnt-- > 0) {
  16.                 kth = maxHeap.poll();
  17.                 inter.add(kth);
  18.             }
  19.             result.add(kth);
  20.             for (int v : inter) {
  21.                 maxHeap.offer(v);
  22.             }
  23.             inter.clear();
  24.         }
  25.        
  26.         return result;
  27.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement