數組中第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]

 

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