215. Kth Largest Element in an Array
Medium LeetCodeGiven an integer array nums and an integer k, return the kth largest element in the array. Note that it is the kth largest element in the sorted order, not the kth distinct element. Can you solve it without sorting?
Example 1:
Input:
nums = [3,2,1,5,6,4],k = 2
Output:5
Explanation: The 2nd largest element is 5.
Example 2:
Input:
nums = [3,2,3,1,2,4,5,5,6],k = 4
Output:4
Explanation: The 4th largest element is 4.
Constraints:
1 <= k <= nums.length <= 10^5-10^4 <= nums[i] <= 10^4
How to solve the problem
- Sort
python
class Solution:
def findKthLargest(self, nums: List[int], k: int) -> int:
return sorted(nums)[-k]- Min Heap
python
class Solution:
def findKthLargest(self, nums: List[int], k: int) -> int:
heap = []
for num in nums:
heapq.heappush(heap, num)
if len(heap) > k:
heapq.heappop(heap)
return heap[0]Complexity
- Sort: Time complexity:
O(n log n), Space complexity:O(1)- Wherenis the length of the array. We sort the array and return the kth element. - Min Heap: Time complexity:
O(n log k), Space complexity:O(k)- We maintain a heap of size k and process n elements.
Comments
No comments yet. Be the first to comment!