题解 | #寻找第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

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-08 12:10
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-10 12:10
点赞 评论 收藏
分享
06-15 20:57
已编辑
门头沟学院 Java
CARLJOSEPH...:年轻人有傲气很正常,但是建议工作前洗净傲气。 说实在的,什么奖学金什么奖项的都很一般。尊重你的老师,在有时间的时候去上课,真遇到走不开的事,请态度端正地向你的老师说明情况,请求请假。我相信任何一个有师德的老师都会允许的(我的老师就是这样)。
点赞 评论 收藏
分享
鬼迹人途:你去投一投尚游游戏,服务器一面,第一个图算法,做完了给你一个策略题,你给出方案他就提出低概率问题,答不上当场给你挂
点赞 评论 收藏
分享
牛客73617529...:无端端被你骂一句
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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