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

56次阅读
没有评论

共计 427 个字符,预计需要花费 2 分钟才能阅读完成。

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

def partition(nums, left, right):
pivot = nums[left]
i = left + 1
j = right
while True:
while i = pivot:
i += 1
while i <= j and nums[j] <= pivot:
j -= 1
if i  k - 1:
right = pos - 1
else:
left = pos + 1

使用示例:

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

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

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-21发表,共计427字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)