使用堆
import heapq
def findKthLargest(nums, k):
stack = []
for num in nums:
heapq.heappush(stack, num)
if len(stack) > k:
stack.pop()
return stack[-1]
nums = [6,4,1,3,5,2,7]
print(findKthLargest(nums, 5))
借鉴快速排序的思想
快速排序代码
def quicksort(nums):
l = 0
r = len(nums)-1
_quicksort(nums, l, r)
def _quicksort(nums, left, right):
l = left
r = right
if l < r:
tmp = nums[l]
while l < r:
while l < r and tmp <= nums[r]:
r -= 1
nums[l], nums[r] = nums[r], nums[l]
while l < r and tmp > nums[l]:
l += 1
nums[l], nums[r] = nums[r], nums[l]
_quicksort(nums, left, l)
_quicksort(nums, l+1, right)
nums = [6,2,4,1,2,3,5,2,