#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param a int整型一维数组 
# @param n int整型 
# @param K int整型 
# @return int整型
#
class Solution:
    def findKth(self , a: List[int], n: int, K: int) -> int:
        # write code here
        def pivot(A, p, r):
            # 给出A[r]应该处于的位置
            target = A[r]
            i = p-1
            for j in range(p, r):
                if A[j] <= target:
                    i += 1
                    A[j], A[i] = A[i], A[j]
            i += 1
            A[r], A[i] = A[i], A[r]
            return i 
            # return i, flag
        left = 0
        right = n-1
        while left < right:
            x = pivot(a, left, right)
            if x == n-K:
                return a[x]
            elif x < n-K:
                left = x + 1
            else:
                right = x - 1
            
        return a[left]

二分查找+快速排序

二分查找一时没有想到,开始还是想着用递归的方法解决。耽误了时间