每日一题-20240204
题目描述
设计一个找到数据流中第 k
大元素的类(class)。注意是排序后的第 k
大元素,不是第 k
个不同的元素。
请实现 KthLargest
类:
KthLargest(int k, int[] nums)
使用整数k
和整数流nums
初始化对象。int add(int val)
将val
插入数据流nums
后,返回当前数据流中第k
大的元素。
示例:
1 | 输入: |
解题思路
思路:使用优先队列实现(小顶堆)实现
1.若队列元素数量小于k,则将元素如列。
2.若队列元素数量大于等于k,比较队首元素和待入队元素大小
2.1若队首元素小,则出队,将新元素入队
2.2若队首元素大,则不处理,保持不变
代码实现
1 | public class KthLargest { |