ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

215. 数组中的第K个最大元素

215. 数组中的第K个最大元素

215. 数组中的第K个最大元素

已解答

中等

相关标签

相关企业

给定整数数组nums和整数k,请返回数组中第k个最大的元素。

请注意,你需要找的是数组排序后的第k个最大的元素,而不是第k个不同的元素。

你必须设计并实现时间复杂度为O(n)的算法解决此问题。

示例 1:

输入:[3,2,1,5,6,4],k = 2输出:5

示例 2:

输入:[3,2,3,1,2,4,5,5,6],k = 4输出:4

提示:

  • 1 <= k <= nums.length <= 105
  • -104 <= nums[i] <= 104
class Solution { public: int findKthLargest(vector<int>& nums, int k) { priority_queue<int, vector<int>, greater<int>> heap; for(int i=0; i<nums.size(); ++i){ heap.push(nums[i]); if(heap.size() > k){ heap.pop(); } } return heap.top(); } };
返回列表