Kth Largest Element in an Array
LeetCode 215
Heap
class Solution:
def findKthLargest(self, nums, k):
"""
:type nums: List[int]
:type k: int
:rtype: int
"""
"""
heapq.heappush(heap, item = (priority, object))
heapq.heappop(heap)
heapq.heappushpop(heap, item)
heapq.nlargest(n, iterable, key=None)
heapq.nsmallest(n, iterable, key=None)
"""
heapq.heapify(nums)
elements = heapq.nlargest(k, nums)
return elements[-1]
Merge Sort
class Solution:
def findKthLargest(self, nums, k):
"""
:type nums: List[int]
:type k: int
:rtype: int
"""
"""
Merge Sort
"""
def divide(nums):
if len(nums) == 1:
return nums
mid = int(len(nums)/2)
left, right = divide(nums[:mid]), divide(nums[mid:])
return conquer(left, right)
def conquer(left, right):
res = []
pointer1 = pointer2 = 0
while pointer1 < len(left) and pointer2 < len(right):
if left[pointer1] < right[pointer2]:
res.append(left[pointer1])
pointer1 +=1
else:
res.append(right[pointer2])
pointer2 +=1
res.extend(left[pointer1:])
res.extend(right[pointer2:])
return res
ordered = divide(nums)
return ordered[-k]
Last updated