class Solution:
def findKthLargest(self, nums: List[int], k: int) -> int:
heap=nums[:k]
def heapify(heap,i):
while True:
heapmin=i
if 2*i+1<k and heap[2*i+1]<heap[heapmin]:
heapmin=2*i+1
if 2*i+2<k and heap[2*i+2]<heap[heapmin]:
heapmin=2*i+2
if heapmin==i:
break
else:
heap[i],heap[heapmin]=heap[heapmin],heap[i]
i=heapmin
for i in range(k//2-1,-1,-1):
heapify(heap,i)
for i in range(k,len(nums)):
if nums[i]<=heap[0]:
continue
else:
heap[0]=nums[i]
heapify(heap,0)
return heap[0]