题目描述:

解决方案1:找规律法
题目描述的是,要找到数组中第K大的数,即该数组中,比找到的数要大的有K-1个,如果将数组按照由大到小的降序进行排列的话,只要输出第K个数就可以直接获得想要得到的数字。
解决代码如下:
class Solution(object):
def findKthLargest(self, nums, k):
"""
:type nums: List[int]
:type k: int
:rtype: int
"""
nums = sorted(nums, reverse=True)
return nums[k-1]
提交结果:

解决方案2:堆排序
采用堆排序方法中的大顶堆方法,找到第K大的元素。由于大顶堆是一棵父结点都大于叶子结点的二叉树,所以,只要保持大顶堆的元素小于等于K,那么大顶堆就保留了前K个最大的元素了。即堆顶元素就是想要的目标元素。
代码如下:
class Solution:
def findKthLargest(self, nums, k):
"""
:type nums: List[int]
:type k: int
:rtype: int
"""
return heapq.nlargest(k
LeetCode:数组中第K大元素的Python解法

这篇博客探讨了如何在Python中找到数组中的第K个最大元素。提供了三种解决方案:1) 找规律法,通过理解题意直接获取;2) 堆排序,利用大顶堆特性;3) 快速排序,调整策略以寻找第N-K小的元素。每种方法都附有代码实现和提交结果。
最低0.47元/天 解锁文章
1615

被折叠的 条评论
为什么被折叠?



