codekata #9 (week 2) Top K Frequent Elements
Leetcode #347 Top K Frequent Elements
質問する
ユニット数量宣言
結果を宣言して、ディクシャナのキーを値でソートします.
numsをdickshernerに設定し、for loopを使用してelements countを計算します.
ソート関数を使用して、終了文のディックシーケンスを値に基づいてソートします.
1)
2)
3)
返される値は一般的な数ではないため、
collections-コンテナデータ型
より良い解決策がない場合は、Pythonが提供するライブラリ集合モジュールについて理解しました.
collectionsには、データを処理するために有用なオブジェクトがたくさんあり、
ここで、
これにより、コードを大幅に簡略化できます.
戻りパラメータ
[(nums[x], nums.count(x) , (nums[y], nums.count(y)) ... ]
リスト計算を使用してresultのtupleの最初の要素key(
時間に余裕があれば、Collectionsモジュールをさらに検討する必要があります.
質問する nums
はデジタル配列です.
最もよく見られる数字はk
個ですnums = [1,1,1,2,2,3],
k = 2
return [1,2]
nums = [1]
k = 1
return [1]
私の答え
def top_k(nums, k):
numdict = {}
result = []
for x,y in enumerate(nums):
numdict[y] = 0
for i in nums:
numdict[i] = nums.count(i)
result = sorted(numdict.items(),reverse=True, key = lambda x : x[1])
return list(dict(result).keys())[0:k]
nums = [1,1,1,2,2,3],
k = 2
return [1,2]
nums = [1]
k = 1
return [1]
def top_k(nums, k):
numdict = {}
result = []
for x,y in enumerate(nums):
numdict[y] = 0
for i in nums:
numdict[i] = nums.count(i)
result = sorted(numdict.items(),reverse=True, key = lambda x : x[1])
return list(dict(result).keys())[0:k]
ユニット数量宣言
結果を宣言して、ディクシャナのキーを値でソートします.
numsをdickshernerに設定し、for loopを使用してelements countを計算します.
ソート関数を使用して、終了文のディックシーケンスを値に基づいてソートします.
1)
items()
関数を使用して値を減算2)
reverse=True
を使用して、昇順ではなくdefaultの降順で並べ替えます.3)
key= lambda x : x[1]
を使用して[(key , value), ...]
の釘の形で返却する返される値は一般的な数ではないため、
keys()
メソッドを使用してディック・シェリーをリストにし、k値でリストをリストします.Collections
collections-コンテナデータ型
より良い解決策がない場合は、Pythonが提供するライブラリ集合モジュールについて理解しました.
collectionsには、データを処理するために有用なオブジェクトがたくさんあり、
counter()
は、リストをカウントするためにハッシュするのに役立ちます.ここで、
counter()
のmost_common(n)
メソッドは、指定された配列内の要素を降順に並べ替え、n(element,count)のtuple形式を返す.これにより、コードを大幅に簡略化できます.
from collections import Counter
def top_k(nums, k):
result = Counter(nums).most_common(k)
answer = [num[0] for num in result]
return answer
戻りパラメータ
nums
は、kを降順とするtuple形式である[(nums[x], nums.count(x) , (nums[y], nums.count(y)) ... ]
リスト計算を使用してresultのtupleの最初の要素key(
nums[x],nums[y]..
)をリストに変換して返します.Reference
この問題について(codekata #9 (week 2) Top K Frequent Elements), 我々は、より多くの情報をここで見つけました https://velog.io/@aerialslash/codekata-9-week-2-Top-K-Frequent-Elementsテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol