算法通关村——数组中第K大的数字

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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值