数据流中的第K大元素
数据流中的第K大元素
设计一个找到数据流中第K大元素的类(class)。注意是排序后的第K大元素,不是第K个不同的元素。
/**
* @param {number []} nums
* @param {number} k
* @return {number []}
*/
class kMax {
constructor(nums, k) {
this.nums = nums
this.k = k
if(nums.length < k) return (nums.sort((a, b) => a - b ))
this.res = []
nums.forEach(item => {
this.add(item)
})
return this.res
}
add(v) {
if(this.res.length < this.k) {
this.res.push(v)
} else if(this.res[0] < v) {
this.res.shift()
this.res.push(v)
}
this.res = this.res.sort((a, b) => a - b)
}
}
本文标题:数据流中的第K大元素
本文链接:https://www.haomeiwen.com/subject/ogxevqtx.html
网友评论