参考题解的思路(已提交)
import heapq
class Solution:
def findKthLargest(self, nums: List[int], k: int) -> int:
heap = []
heapq.heapify(heap)
for i in nums:
heapq.heappush(heap,i*-1)
while k > 1:
heapq.heappop(heap)
k -= 1
return heapq.heappop(heap) * -1
215.思路(自己的理解)
建立一个heap = [ ]
先遍历nums中的元素并添加到建立的 [ ] 中
变为最大堆
找到第k个最大元素,即索引为k-1的元素
所以需要删除前面的k-2个元素,再删除第k个最大元素并输出 print ( heapq.heappop( ) )
heapq.heappop( ) 用于删除堆顶元素,所以利用循环,在每一次删除堆顶元素以后重新产生新的最大堆
《Python中heapq模块浅析》 链接 :https://blog.csdn.net/chandelierds/article/details/91357784