数组里哪个元素是第K大的?
- 内容介绍
- 文章标签
- 相关推荐
本文共计281个文字,预计阅读时间需要2分钟。
1. 题目:在未排序的数组中找到第k个最大的元素。 注意:你需要找到的是数组排序后第k大的元素,而不是第k个不同的元素。 示例:输入:[3, 2, 1, 5] + 1. 输出:第k个最大的元素是5。
1. 题目
在未排序的数组中找到第 k 个最大的元素。请注意你需要找的是数组排序后的第 k 个最大的元素而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k 2输出: 5示例 2:输入: [3,2,3,1,2,4,5,5,6] 和 k 4输出: 4说明:你可以假设 k 总是有效的且 1 ≤ k ≤ 数组的长度。
2. 题解
from typing import Listimport heapqclass Solution:# 方法1def findKthLargest(self, nums: List[int], k: int) -> int:minheapq []heapq.heapify(minheapq) # 堆化操作for n in nums:heapq.heappush(minheapq, n)while len(minheapq) > k:heapq.heappop(minheapq)return minheapq[0]# 方法2def findKthLargest(self, nums: List[int], k: int) -> int:nums.sort()return nums[len(nums) - k]
本文共计281个文字,预计阅读时间需要2分钟。
1. 题目:在未排序的数组中找到第k个最大的元素。 注意:你需要找到的是数组排序后第k大的元素,而不是第k个不同的元素。 示例:输入:[3, 2, 1, 5] + 1. 输出:第k个最大的元素是5。
1. 题目
在未排序的数组中找到第 k 个最大的元素。请注意你需要找的是数组排序后的第 k 个最大的元素而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k 2输出: 5示例 2:输入: [3,2,3,1,2,4,5,5,6] 和 k 4输出: 4说明:你可以假设 k 总是有效的且 1 ≤ k ≤ 数组的长度。
2. 题解
from typing import Listimport heapqclass Solution:# 方法1def findKthLargest(self, nums: List[int], k: int) -> int:minheapq []heapq.heapify(minheapq) # 堆化操作for n in nums:heapq.heappush(minheapq, n)while len(minheapq) > k:heapq.heappop(minheapq)return minheapq[0]# 方法2def findKthLargest(self, nums: List[int], k: int) -> int:nums.sort()return nums[len(nums) - k]

