215. Kth Largest Element in an Array
Posted lettuan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了215. Kth Largest Element in an Array相关的知识,希望对你有一定的参考价值。
用heap解,
方法1. 维护一个 size = k 的最小堆。当前元如果大于堆顶的元素,那么说明堆顶的元素肯定小于kth largest element。所以replace他。
1 class Solution(object): 2 def findKthLargest(self, nums, k): 3 """ 4 :type nums: List[int] 5 :type k: int 6 :rtype: int 7 """ 8 heap = [] 9 res = 0 10 11 for i in range(len(nums)): 12 if i < k: 13 heapq.heappush(heap, nums[i]) 14 else: 15 if heap[0] < nums[i]: 16 heapq.heapreplace(heap, nums[i]) 17 18 19 return heap[0]
或者维护一个-nums的最小堆,从heap pop出第k个元素。那么这个数就是 -nums的第k小元素,也就是nums的第k大元素。
class Solution(object): def findKthLargest(self, nums, k): """ :type nums: List[int] :type k: int :rtype: int """ heap = [] res = 0 for i in range(len(nums)): heapq.heappush(heap, -nums[i]) for j in range(k): res = -heapq.heappop(heap) return res
以上是关于215. Kth Largest Element in an Array的主要内容,如果未能解决你的问题,请参考以下文章
Leetcode-215. Kth Largest Element in an Array
#Leetcode# 215. Kth Largest Element in an Array
LeetCode OJ 215. Kth Largest Element in an Array 堆排序求解
LN : leetcode 215 Kth Largest Element in an Array