美文网首页
剑指 Offer II 059. 数据流的第 K 大数值

剑指 Offer II 059. 数据流的第 K 大数值

作者: 邦_ | 来源:发表于2022-07-05 09:27 被阅读0次

想到的最直接的。。 不过既然前边的都排好顺序了 是可以优化的

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!

    }
}



相关文章

网友评论

      本文标题:剑指 Offer II 059. 数据流的第 K 大数值

      本文链接:https://www.haomeiwen.com/subject/wvbumrtx.html