题解 | #寻找第K大#
寻找第K大
https://www.nowcoder.com/practice/e016ad9b7f0b45048c58a9f27ba618bf
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param a int整型一维数组 # @param n int整型 # @param K int整型 # @return int整型 # class Solution: def kuaip(self, arr: List[int], str, end): i = str j = end temp = arr[i] while i < j: while i < j and arr[j] <= temp: j -= 1 if i < j: arr[i] = arr[j] i += 1 while i < j and arr[i] >temp: i += 1 if i < j: arr[j] = arr[i] j -= 1 arr[i] = temp return arr + [i] def findKth(self, a: List[int], n: int, K: int) -> int: # write code heredef kuaip(arr,str,end): i = 0 j = n - 1 lis = self.kuaip(a, i, j) while lis[-1] != K - 1: if lis[-1] < K - 1: i = lis[-1] + 1 lis = self.kuaip(lis[:-1], i, j) if lis[-1] > K - 1: j = lis[-1] - 1 lis = self.kuaip(lis[:-1], i, j) print(lis) return lis[:-1][K-1]