1:题目信息

题目地址

2:解题思路

利用排序或者优先队列等

3:代码

  1. public static int findKthLargest(int[] nums, int k) {
  2. Arrays.sort(nums);
  3. return nums[nums.length - k];
  4. }
  1. /**
  2. * 最小堆
  3. * @param nums
  4. * @param k
  5. * @return
  6. */
  7. public static int findKthLargest2(int[] nums, int k) {
  8. final PriorityQueue<Integer> queue = new PriorityQueue<>();
  9. for (int val : nums) {
  10. queue.add(val);
  11. if (queue.size() > k) {
  12. // 弹出第一个(最小的一个)
  13. queue.poll();
  14. }
  15. }
  16. return queue.peek();
  17. }

Go版本实现

  1. func findKthLargest(nums []int, k int) int {
  2. }