题解 | #寻找第K大#

寻找第K大

https://www.nowcoder.com/practice/e016ad9b7f0b45048c58a9f27ba618bf

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param a int整型一维数组 
# @param n int整型 
# @param K int整型 
# @return int整型
#
from typing import List

class Solution:
    def findKth(self , a: List[int], n: int, K: int) -> int:
        # write code here
        def quickSort(l: int, r: int, k: int) -> int:
            if l >= r:
                return a[l]
            i, j = l - 1, r + 1 
            x = a[l + (r - l) // 2]
            while i < j:
                while True:
                    i += 1
                    if a[i] >= x:
                        break
                while True:
                    j -= 1
                    if a[j] <= x:
                        break
                if i < j:
                    a[i], a[j] = a[j], a[i]
            s1 = j - l + 1
            if k <= s1:
                return quickSort(l, j, k)
            else:
                return quickSort(j + 1, r, k - s1)
        return quickSort(0, n - 1, n - K + 1)

算法刷题记录 文章被收录于专栏

刷题,记录牛客的101

全部评论

相关推荐

DBsan:我也遇到过好的HR,全程友好交流。这年头基本的礼貌和尊重为什么好多HR都做不到
找工作时遇到的神仙HR
点赞 评论 收藏
分享
饼子吃到撑:据我了解奥,我身边的护士大部分都是找关系进的医院,还掏了不少米
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务