数组中第k大的数
给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。
请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。
思路:非常经典的题,维护一个大小为k的小顶堆,最后输出堆顶就可以了
heapq库用的是小顶堆
注意堆的写法!
import heapq class Solution(object): def findKthLargest(self, nums, k): """ :type nums: List[int] :type k: int :rtype: int """ pq=[] for n in nums: heapq.heappush(pq,n) if(len(pq)>k): heapq.heappop(pq) return pq[0]