LeetCode 215. Kth Largest Element in an Array

Description

https://leetcode.com/problems/kth-largest-element-in-an-array/

Find the kth largest element in an unsorted array. Note that it is the kth largest element in the sorted order, not the kth distinct element.

Example 1:

Input: [3,2,1,5,6,4] and k = 2
Output: 5

Example 2:

Input: [3,2,3,1,2,4,5,5,6] and k = 4
Output: 4

Note:
You may assume k is always valid, 1 ≤ k ≤ array’s length.

Explanation

Use heap is easy to find k largest.

Python Solution

class Solution:
def findKthLargest(self, nums: List[int], k: int) -> int:
return heapq.nlargest(k, nums)[-1]
• Time complexity: O(N log(k)).
• Space complexity: O(k).

3 Thoughts to “LeetCode 215. Kth Largest Element in an Array”

1. vivkey says:

/** java **/

class Solution {

public int findKthLargest(int[] nums, int k) {
PriorityQueue q = new PriorityQueue();
for(int i: nums){
q.offer(i);
if(q.size() > k) {
q.poll();
}
}
return q.peek();
}

// Another approach

public int findKthLargest1(int[] nums, int k) {
if(nums == null || nums.length == 0 ) return -1;
int len = nums.length;

Arrays.sort(nums);
return nums[len-k];

}

}