class Solution(object):
def findKthLargest(self, nums, k):
"""
:type nums: List[int]
:type k: int
:rtype: int
"""
k = len(nums) - k
def quickSelect(l, r):
#choose splitter
pivot, p = nums[r], l
# partition numbers
for i in range(l, r):
if nums[i] <= pivot:
nums[p], nums[i] = nums[i], nums[p]
p += 1
nums[p], nums[r] = nums[r], nums[p]
# choose which side to do the recurrsion
if p > k:
return quickSelect(l, p-1)
elif p < k:
return quickSelect(p + 1, r)
else:
return nums[p]
return quickSelect(0, len(nums) - 1)