• leetcode算法题基础(十七)分治法(三)215. 数组中的第K个最大元素


    在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。

    示例 1:

    输入: [3,2,1,5,6,4] 和 k = 2
    输出: 5
    示例 2:

    输入: [3,2,3,1,2,4,5,5,6] 和 k = 4
    输出: 4

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/kth-largest-element-in-an-array
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    class Solution:
        def findKthLargest(self, nums: List[int], k: int) -> int:
            def Merge_Sort(lists):
                if len(lists) <=1 :
                    return lists
                mid = len(lists) // 2
                left = Merge_Sort(lists[:mid]) #将列表从中间分为两部分
                right = Merge_Sort(lists[mid:])
                return Merge(left, right) #合并两个列表
    
            def Merge(left,right):
                r, l=0, 0
                result=[]
                while l<len(left) and r<len(right):
                    if left[l] > right[r]:
                        result.append(left[l])
                        l += 1
                    else:
                        result.append(right[r])
                        r += 1
                result += left[l:]
                result += right[r:]
                return result
    
            a = Merge_Sort(nums)
            # print(a)
            return a[k-1]

    本文来自博客园,作者:秋华,转载请注明原文链接:https://www.cnblogs.com/qiu-hua/p/13999071.html

  • 相关阅读:
    Vue过滤器使用
    vue基础
    lesson
    lesson
    lesson
    lesson
    rm 命令详解
    alias 命令详解
    cd 命令详解
    cut 命令详解
  • 原文地址:https://www.cnblogs.com/qiu-hua/p/13999071.html
Copyright © 2020-2023  润新知