[Leetcode] 347. Top K Frequent Elements

2023/11/29閱讀時間約 2 分鐘

詳細題目 : 347. Top K Frequent Elements Medium

Given an integer array nums and an integer k, return the k most frequent elements. You may return the answer in any order.


Example 1:

Input: nums = [1,1,1,2,2,3], k = 2
Output: [1,2]

Example 2:

Input: nums = [1], k = 1
Output: [1]



count : { 數字:出現的次數 }

freq : [[],[],[],[]....[]]

list中第i個位置 : 出現的次數

list中第i個位置的內容 : 數字

res : result答案

line 6-7 : 將所有的數字現幾次做分類 { 數字:出現的次數 }

line 8-9 : 將讀取到的次數(count)當作index,將數字(num) append()到第count個陣列中

line 12 : 從freq的後面依序查看

line 13 : 將freq[i]陣列中的數字一直append()直到res的個數等於k


class Solution:
def topKFrequent(self, nums: List[int], k: int) -> List[int]:
count = {}
freq = [[] for i in range(len(nums)+1)]

for num in nums:
count[num] = count.get(num, 0) + 1
for num, count in count.items():
freq[count].append(num)

res = []
for i in range(len(freq) - 1, 0, -1):
for n in freq[i]:
res.append(n)
if len(res) == k:
return res





7會員
36內容數
這裡會放一些我寫過的 Leetcode 解題和學習新技術的筆記
留言0
查看全部
發表第一個留言支持創作者!