LeetCode215:数组中第K大的最大元素。给定整数数组nums和整数k,请返回数组中第K个最大的元素。请注意,你需要找的是数组排序后的第K个最大的元素,而不是第K个不同的元素。
class FindKthLargest:
def quickSort(self, nums, left, right):
if left >= right:
return
start = left
end = right
pivot = nums[(start + end) // 2]
while start <= end:
while nums[start] < pivot:
start += 1
while nums[end] > pivot:
end -= 1
if start <= end:
nums[start], nums[end] = nums[end], nums[start]
start += 1
end -= 1
self.quickSort(nums, left, end)
self.quickSort(nums, start, right)
def findKthLargest(self, nums, k):
self.quickSort(nums, 0, len(nums) - 1)
return nums[k - 1]
if __name__ == "__main__":
nums = [26, 53, 48, 15, 13, 46, 32, 15]
findKthLargest = FindKthLargest()
res = findKthLargest.findKthLargest(nums, 6)
print(res)