题目

Show Swift Code
class Solution {func findKthLargest(_ nums: [Int], _ k: Int) -> Int {guard k != 1 else {return nums.max()!}var numbers = [Int]()numbers.append(contentsOf: nums)return tryToFind(&numbers, 0, numbers.count - 1, k)}func tryToFind(_ numbers: inout [Int], _ from: Int, _ to: Int, _ k: Int) -> Int {var i = fromvar pivot = numbers[to]for index in from...to - 1 {// 此处不能是`>`, 也不能是`<`, 必须是`>=`if numbers[index] >= pivot {if index != i {numbers.swapAt(i, index)}i = i + 1}}numbers.swapAt(i, to)guard i + 1 != k else {return numbers[i]}if k > i {return tryToFind(&numbers, i, to, k)} else {return tryToFind(&numbers, from, i - 1, k)}}
}