前k個高頻元素

2021-09-29 06:56:13 字數 1087 閱讀 8532

給定乙個非空的整數陣列,返回其**現頻率前 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 n) , n 是陣列的大小。

python3:

from collections import counter

class

solution

: def topkfrequent

(self, nums: list[

int]

, k:

int)

-> list[

int]

: res =

a =counter

(nums)

b = a.

most_common

(k)for i in b:

res.

(i[0])

return res

c++

主要運用了unordered_map雜湊表和vector>的資料結構,在sort函式中,排序函式自定義也有涉及

class

solution

vectorint,

int>>

countv

(count.

begin()

,count.

end())

;sort

(countv.

begin()

,countv.

end(),

(pair<

int,

int>

&a, pair<

int,

int>

&b))

;for

(int i=

0;i)return res;}}

;

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

前 K 個高頻元素

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

前k個高頻元素

使用unorderedmap借用雜湊來統計數字出現的頻率,然後題目要求複雜度是nlogn,所以借用multimap來自動排序 此時因為需要排序所以使用頻率來作為key。最後使用倒迭代器,來將結果壓倒vector中附註 1.multimap iterator it1 st.rbegin 這種寫法會出錯...