動機

沒有魔法的一題

Problem

Given an integer array nums and an integer k, return the kth largest element in the array.

Note that it is the kth largest element in the sorted order, not the kth distinct element.

 

Example 1:

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

Example 2:

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

 

Constraints:

  • 1 <= k <= nums.length <= 104
  • -104 <= nums[i] <= 104

Sol

最直接的方法是排序或是heap

import heapq as hq
class Solution:
    def findKthLargest(self, nums: List[int], kkk: int) -> int:
        h = []
        for n in nums:
            hq.heappush(h,-n)
        ret = 0
        for _ in range(0,kkk):
            ret = hq.heappop(h)
        return -ret

還有quick select,但是會改list,我是不太喜歡啦