Hot-215 数组种的第K个最大的元素

📅 2026/8/4 20:58:08
Hot-215 数组种的第K个最大的元素
解法1直接 List.sort(),取List[-k]class Solution: def findKthLargest(self, nums: List[int], k: int) - int: nums.sort() return nums[-k]解法2利用最小堆import heapq from typing import List class Solution: def findKthLargest(self, nums: List[int], k: int) - int: # 方法用最小堆维护 k 个最大的元素 min_heap [] for num in nums: heapq.heappush(min_heap, num) # 保持堆的大小为 k if len(min_heap) k: heapq.heappop(min_heap) # 堆顶就是第 k 大元素 return min_heap[0]解法3利用 负数 实现最大堆import heapq class Solution: def findKthLargest(self, nums: List[int], k: int) - int: # 方法1使用最大堆取负数 max_heap [-x for x in nums] heapq.heapify(max_heap) # 弹出 k-1 次堆顶就是第 k 大 for _ in range(k - 1): heapq.heappop(max_heap) return -max_heap[0]