LeetCode每日一题,703. Kth Largest Element In a Stream
先看题目描述
大意就是实现一个类,用于找到数据流中的第 K 大元素,该类中的 add 方法的功能就是加元素添加到数据流中并返回第 K 大的元素
算法和思路
小顶堆
这题不难,用小顶堆就可以解决
维护一个容量为 k 的小顶堆,然后在每次往数据流中添加元素时进行判断,若此时堆中元素个数小于 k,则直接将元素添加至小顶堆中;否则,将该元素与堆顶元素的大小进行比较,若该元素大于堆顶元素的话,才弹出堆顶元素并将该元素添加至小顶堆中,然后返回新的堆顶元素即可
算法源码
小顶堆
1 | class KthLargest { |