python怎么实现leetcode求第k大的数

   2025-02-17 3190
核心提示:可以使用快速选择算法来实现求第k大的数。快速选择算法的思想是基于快速排序,通过每次将数组划分为两个部分,将选定的元素放在

可以使用快速选择算法来实现求第k大的数。快速选择算法的思想是基于快速排序,通过每次将数组划分为两个部分,将选定的元素放在正确的位置上,从而找到第k大的数。

下面是使用快速选择算法实现求第k大的数的Python代码:

def partition(nums, left, right):pivot = nums[left]i = left + 1j = rightwhile True:while i <= j and nums[i] >= pivot:i += 1while i <= j and nums[j] <= pivot:j -= 1if i <= j:nums[i], nums[j] = nums[j], nums[i]else:breaknums[left], nums[j] = nums[j], nums[left]return jdef findKthLargest(nums, k):left = 0right = len(nums) - 1while True:pos = partition(nums, left, right)if pos == k - 1:return nums[pos]elif pos > k - 1:right = pos - 1else:left = pos + 1

使用示例:

nums = [3, 2, 1, 5, 6, 4]k = 2result = findKthLargest(nums, k)print(result)  # 输出: 5

在以上示例中,我们给定了一个数组nums和一个整数k,然后调用findKthLargest函数来求第k大的数。输出结果为5,表示数组nums中第2大的数为5。

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言