leetcode 347 堆排序練習

2021-10-09 19:51:38 字數 524 閱讀 6176

vectortopkfrequent(vector& nums, int k)

}else

}vectorres;

while(!q.empty())

reverse(res.begin(),res.end());

return res;

}

使用小頂堆,比較的時候,如果比堆頂最小的元素還小,那麼肯定不是topk最大的了,不用處理,如果比堆頂元素大,那麼刪除堆頂元素,當前元素入佇列。小頂堆宣告方式:

priority_queue,vector>,greater>> q;
後面比較函式是greater> ,預設是大頂堆,less>.也可以自定義過載比較函式:

static bool cmp(pair& m, pair& n)

過載比較函式,static bool cmp (元素型別引用,元素型別引用){

//返回第乙個數的頻率大於第二個數的頻率;

Leetcode 347 前K個高頻元素

給定乙個非空的整數陣列,返回其 現頻率前k高的元素。示例 1 輸入 nums 1,1,1,2,2,3 k 2 輸出 1,2 示例 2 輸入 nums 1 k 1 輸出 1 說明 首先都要先用hash表統計一次頻率,乙個思路是排序,取前k個元素 第二個思路是使用優先佇列,這裡提供兩種 class so...

Leetcode347 前K個高頻元素

給定乙個非空的整數陣列,返回其 現頻率前 k 高的元素。示例 1 輸入 nums 1,1,1,2,2,3 k 2 輸出 1,2 示例 2 輸入 nums 1 k 1 輸出 1 說明 你可以假設給定的 k 總是合理的,且 1 k 陣列中不相同的元素的個數。你的演算法的時間複雜度必須優於 o n log...

leetcode 347前k個高頻元素

題目 給定乙個非空的整數陣列,返回其 現頻率前 k 高的元素。示例 1 輸入 nums 1,1,1,2,2,3 k 2 輸出 1,2 示例 2 輸入 nums 1 k 1 輸出 1 說明 你可以假設給定的 k 總是合理的,且 1 k 陣列中不相同的元素的個數。你的演算法的時間複雜度必須優於 o n ...