leintcode Kth Largest Element python

本文介绍了一种基于快速排序思想的算法,用于在数组中查找第K大的元素。通过实现sort_info和kthLargestElement两个核心函数,有效地解决了这一问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Description

Find K-th largest element in an array.

参考快速排序的思想

class Solution:
    """
    @param n: An integer
    @param nums: An array
    @return: the Kth largest element
    """
    def sort_info(self,begin,end,nums):
        if len(nums)==1:return 0,nums
        temp = nums[begin]
        less_index = begin
        more_index = end
        flag = begin
        while(less_index< more_index):
            while(less_index< more_index and temp>=nums[more_index] and flag!= more_index):
                more_index -= 1

            while(less_index <= more_index and temp < nums[less_index] and flag != less_index):
                less_index += 1
            flag = more_index if flag==less_index else less_index
            nums[less_index],nums[more_index] = nums[more_index],nums[less_index]
        return flag,nums

    def kthLargestElement(self, n, nums):
        # write your code here
        flag,nums = self.sort_info(0,len(nums)-1,nums)
        while(1) :
            if flag == n-1:
                return nums[n-1]
            elif flag > n-1:
                nums = nums[:flag]
                flag,nums = self.sort_info(0,len(nums)-1,nums)
            else:
                nums = nums[flag+1:]
                n = n - flag-1
                flag,nums = self.sort_info(0,len(nums)-1,nums)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值