[アルゴリズム]Letcode配列のK番目の大きな要素
6078 ワード
質問リンク
本:Pythonアルゴリズムインタビュー
heapqモジュールの使用
本:Pythonアルゴリズムインタビュー
heapqモジュールの使用
class Solution:
def findKthLargest(self, nums: List[int], k: int) -> int:
heap = list()
for n in nums:
heapq.heappush(heap, -n)
for _ in range(k-1):
heapq.heappop(heap)
return -heapq.heappop(heap)
heapqモジュールのheapifyを使用する def findKthLargest(self, nums: List[int], k: int) -> int:
heapq.heapify(nums)
for _ in range(len(nums) - k):
heapq.heappop(nums)
return heapq.heappop(nums)
heapqモジュールのnltargetの使用def findKthLargest(self, nums: List[int], k: int) -> int:
return heapq.nlargest(k, nums)[-1]
ソートによる解決 def findKthLargest(self, nums: List[int], k: int) -> int:
nums.sort()
return nums[-k]
実行速度に大きな差はありませんが、ソート方式が最も速いです.Pythonのソート関数はTeam Sortを使用しているので、cでよく記述されています.Reference
この問題について([アルゴリズム]Letcode配列のK番目の大きな要素), 我々は、より多くの情報をここで見つけました https://velog.io/@injoon2019/알고리즘-Leetcode-배열의-K번째-큰-요소テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol