想到的最直接的。。 不过既然前边的都排好顺序了 是可以优化的
class KthLargest {
var array:[Int]
var m:Int
init(_ k: Int, _ nums: [Int]) {
m = k
array = nums
}
func add(_ val: Int) -> Int {
array.append(val)
array.sort(by: >)
return array[m - 1]
}
}
优化版本。。 只维护k个的数组
class KthLargest {
var array:[Int]
var m : Int
init(_ k: Int, _ nums: [Int]) {
var tempArray = nums
tempArray.sort(by:>)
array = []
m = k
var length = nums.count
if length > 0 {
if length > k {
length = k
}
for i in 0...length-1 {
array.append(tempArray[i])
}
}
}
func add(_ val: Int) -> Int {
array.append(val)
array.sort(by: >)
if array.count > m {
array.removeLast()
}
return array.last!
}
}






网友评论