publicclass{ * @param nums: an integer array * @param k: An integer * @return: the top k largest numbers in array */ publicint[] topk(int[] nums, int k) { // write your code here // assume nums.size >= k PriorityQueue<Integer> minHeap = new PriorityQueue<>(k); for (int num : nums) { minHeap.offer(num); if (minHeap.size() > k) { minHeap.poll(); } }
// iterate the min heap int[] result = newint[k]; for (int i = 0; i < result.length; i++) { result[--k] = minHeap.poll(); }
近期评论