LeetCode热题100- 数组中的第K个最大元素

张开发
2026/5/4 0:32:56 15 分钟阅读
LeetCode热题100- 数组中的第K个最大元素
给定整数数组nums和整数k请返回数组中第k个最大的元素。请注意你需要找的是数组排序后的第k个最大的元素而不是第k个不同的元素。你必须设计并实现时间复杂度为O(n)的算法解决此问题。通过题目可知需要找出数组中第K个最大元素采用小堆顶方法维系一个k长度的序列最后返回堆顶的元素就位第K个最大元素。这个时间复杂度为O(nlogk)import heapq class Solution: def findKthLargest(self, nums: List[int], k: int) - int: heap [] for num in nums: # 创建一个小堆顶 heapq.heappush(heap, num) if len(heap) k: heapq.heappop(heap) return heap[0]

更多文章