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 log n) , n 是陣列的大小。
思路:
建立幾個木桶,然後把資料分別放入木桶中去,這裡可以用字典,記錄個數。
def topFrequecy(nums,k):
count_list = dict()
result = list()
for i in nums:
count_list[i] = count_list.get(i,0) + 1 #記錄個數
t = sorted(count_list.items(),key = lambda l: l[1], reverse = True)
for i in range(k):
result.append(t[i][0]) #value排好了序,從大到小
return result
def main():
nums = [1,1,2,2,2,3]
k=2
print(topFrequecy(nums,k))
main()
相關文章
- 347. 前 K 個高頻元素
- 347前 K 個高頻元素(雜湊表、堆排序)排序
- LeetCode題解(0692):前K個高頻單詞(Python)LeetCodePython
- 程式碼隨想錄 第13天 | ● 239. 滑動視窗最大值 ● 347.前 K 個高頻元素 ● 總結
- 程式碼隨想錄——棧與佇列8-前K個高頻元素佇列
- Leetcode 347. Top K Frequent ElementsLeetCode
- Day10(棧與佇列) | 150. 逆波蘭表示式求值 239. 滑動視窗最大值 347.前 K 個高頻元素佇列
- 程式碼隨想錄刷題day 11 | **150. 逆波蘭表示式求值** **239. 滑動視窗最大值** **347.前 K 個高頻元素**
- 程式碼隨想錄演算法訓練營day11|150. 逆波蘭表示式求值 239. 滑動視窗最大值 347.前 K 個高頻元素演算法
- 程式碼隨想錄演算法訓練營第十二天|150.逆波蘭表示式求值、239.滑動視窗最大值、347.前k個高頻元素演算法
- leetcode 658.找到K個最接近的元素 JavaLeetCodeJava
- LeetCode-215-陣列中的第K個最大元素LeetCode陣列
- 347. Top K Frequent Elements - Bucket Sorting
- 「面試必問」leetcode高頻題精選面試LeetCode
- [Leetcode]下一個更大元素IILeetCode
- [Leetcode]315.計算右側小於當前元素的個數 (6種方法)LeetCode
- 找到k個最接近x的元素
- 最小的 k 個元素--快排變形
- LeetCode-496-下一個更大元素 ILeetCode
- Leetcode 496. 下一個更大元素 ILeetCode
- LeetCode高頻演算法面試題 - 002 - 兩數相加LeetCode演算法面試題
- LeetCode-230-二叉搜尋樹中第K小的元素LeetCode
- Leetcode230. 二叉搜尋樹中第K小的元素LeetCode
- 陣列中的第K個最大元素陣列
- 選擇問題(求第k個最小元素)
- 「高頻必考」Docker&K8S面試題和答案DockerK8S面試題
- CSS 設定前n個li元素樣式CSS
- 第k大元素
- 【leetcode】高頻題目整理_樹結構篇( High Frequency Problems, Tree )LeetCode
- 出海遊戲頻繁衝入日韓前十 樂元素日本再突破遊戲
- 215、陣列中的第K個最大元素 | 演算法(leetcode,附思維導圖 + 全部解法)300題陣列演算法LeetCode
- 215. 陣列中的第K個最大元素陣列
- 23. 合併K個元素的有序連結串列
- [leetcode 25]. K 個一組翻轉連結串列LeetCode
- leetcode23. 合併K個排序連結串列LeetCode排序
- Leetcode 劍指 Offer 40. 最小的k個數LeetCode
- LeetCode 23. 合併K個排序連結串列LeetCode排序
- 【LeetCode】169. 多數元素LeetCode