[アルゴリズム]Letcode配列のK番目の大きな要素


質問リンク
本: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でよく記述されています.