java优先级队列的使用 leecode.703.数据流中的第K大元素

//设计一个找到数据流中第K大元素的类(class)。
//注意是排序后的第K大元素,不是第K个不同的元素。
class KthLargest {
    private PriorityQueue<Integer> queue;
    private int k = 0;

    public KthLargest(int k, int[] nums) {
        queue = new PriorityQueue(k);
        this.k = k;
        for(int i = 0; i < nums.length;i++){
            add(nums[i]);
        }
    }
    
    public int add(int val) {
        if(queue.size() < k){
            queue.offer(val);
        }else{
            if(queue.peek() < val){
                queue.poll();
                queue.offer(val);
            }
        }
        return queue.peek();
    }
}

  

猜你喜欢

转载自www.cnblogs.com/czsblog/p/10708612.html