leetcode 347前k個高頻元素

2021-10-04 14:58:25 字數 650 閱讀 6685

給定乙個非空的整數陣列,返回其**現頻率前 k 高的元素。

示例 1:

輸入: nums = [1,1,1,2,2,3], k = 2

輸出: [1,2]

示例 2:

輸入: nums = [1], k = 1

輸出: [1]

方法:使用優先佇列,因為優先佇列預設是隊首是最大的,但我們需要是最小的在隊首,所以變一下函式內部即可。

(1)首先使用map將所有數字的頻次表示出來,key是數字,value是頻次。

(2)定義乙個最小優先佇列,長度是k,我們的目標是維護這個優先佇列。佇列第乙個元素是頻次,第二個是值

(3)開始遍歷map,如果頻次大於對於隊首,則進隊,相應的隊首出隊。否則不作操作。最後佇列就是求得解。

class

solution

}else pq.

push

(make_pair

(iter-

>second,iter-

>first));

} vector<

int> res;

while

(!pq.

empty()

)return res;}}

;

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 ...