Leetcode 347 前K個高頻元素

2021-09-12 08:43:16 字數 712 閱讀 1219

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

示例 1:

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

輸出: [1,2]

示例 2:

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

輸出: [1]

說明:

首先都要先用hash表統計一次頻率,乙個思路是排序,取前k個元素

第二個思路是使用優先佇列,這裡提供兩種**

class solution );              // second 為value, first為key

for(auto i=0;i上面的**維護了乙個容量為n的最大堆,然後彈出前k大的元素,時間複雜度是nlogn

下面的做法是維護了乙個容量為k的最小堆,如果有元素比最小值大,就加入,時間複雜度是nlogk

class solution

}else

pq.push(make_pair(iter->second, iter->first));

}vectorres;

while(!pq.empty())

return res;

}};

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

LeetCode 347 前K個高頻元素

347.前 k 個高頻元素 給定乙個非空的整數陣列,返回其 現頻率前k高的元素。示例 1 輸入 nums 1,1,1,2,2,3 k 2輸出 1,2 示例 2 輸入 nums 1 k 1輸出 1 說明 解題思路 1.排序法 使用unordered map儲存資料統計頻次,然後排序 時間複雜度看排序演...