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

 

posted @ 2021-10-12 12:00  -DP-  阅读(58)  评论(0编辑  收藏  举报