LeetCodeDay57 —— 數(shù)組中的第K個最大元素★☆

215. 數(shù)組中的第K個最大元素

描述
  • 在未排序的數(shù)組中找到第 k 個最大的元素。請注意,你需要找的是數(shù)組排序后的第 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
說明:
  你可以假設(shè) k 總是有效的,且 1 ≤ k ≤ 數(shù)組的長度。
思路
  1. 利用STL中的優(yōu)先隊列構(gòu)建最小堆,每次遍歷與堆頂元素比較,較大則更新堆中元素,最后堆頂元素即為所求。
  2. 注意優(yōu)先隊列的定義為template< class T, class Container = std::vector<T>, class Compare = std::less<typename Container::value_type> > class priority_queue;
  3. 默認(rèn)為最大堆,最小堆定義為 priority_queue<int, vector<int>, greater<int>> minHeap;
class Solution_215 {
 public:
  int findKthLargest(vector<int>& nums, int k) {
    priority_queue<int, vector<int>, greater<int>> minHeap;
    for (auto num : nums) {
      if (minHeap.size() < k) {
        minHeap.push(num);
      } else if (num > minHeap.top()) {
        minHeap.pop();
        minHeap.push(num);
      }
    }
    return minHeap.top();
  }
};
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.ios高性能編程 (1).內(nèi)層 最小的內(nèi)層平均值和峰值(2).耗電量 高效的算法和數(shù)據(jù)結(jié)構(gòu)(3).初始化時...
    歐辰_OSR閱讀 30,224評論 8 265
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,545評論 19 139
  • http://liuxing.info/2017/06/30/Spring%20AMQP%E4%B8%AD%E6%...
    sherlock_6981閱讀 16,208評論 2 11
  • 近日,到醫(yī)院探病,認(rèn)識一可憐女子。高大漂亮,原是滬某著名日資企業(yè)部門主管,響當(dāng)當(dāng)?shù)囊粋€人物,家庭美滿,孝順父母...
    章海萍閱讀 391評論 0 0
  • 今天早上和大小寶一起看了《魔法奇緣》的動畫片。我說我覺得長發(fā)公主真的很棒,動畫片里面的每一個人都有夢想,并且為著夢...
    阿樂的后花園閱讀 281評論 0 0

友情鏈接更多精彩內(nèi)容