数组中第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]

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章