76_数组中的第 K 个最大元素

1、题目
给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。
你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。
示例 1:
输入: [3,2,1,5,6,4] 和 k = 2
输出: 5
2、代码

        def get_max_k(self,nums,k):
            """思路
            利用快速排序,逆序排序后,得到返回数组第k-1个数,复杂度为O(n*log(n))~O(n^2)
            python中sort的排序默认为timesort:根据输入的元素的取值范围统计每个元素出现的次数,然后按照统计信息将元素放置到正确的位置上,从而实现排序
            """
            def q_sort(nums):#快速排序
                if len(nums) <= 1:
                    return nums
                mid = nums[0]  # 基准值
                left = [nums[i] for i in range(1, len(nums)) if nums[i] < mid]
                right = [nums[i] for i in range(1, len(nums)) if nums[i] >= mid]
                return q_sort(right) + [mid] + q_sort(left)
            nums_order=q_sort(nums)
            return nums_order[k-1]
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容