leetcode 347 前 K 個高頻元素

2021-10-24 09:57:54 字數 715 閱讀 3907

347. 前 k 個高頻元素

難度中等449收藏分享切換為英文關注反饋

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

示例 1:

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

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

用優先佇列模擬小跟堆

優先佇列是預設最大的一直在最前面

這樣的話先建立pair的優先佇列

確認每乙個數字的次數

按照次數大小建立優先佇列

當優先佇列大小大於k時,就推出

這時候推出的是最前面的,也就是最大的

而我們應該推出最小的,所以這裡用次數的負數做為標的建立優先佇列

#include #include #include using namespace std;

vectortopkfrequent(vector& nums, int k)

for (auto p : mp)

while (k--)

return re;

}

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