数据流中的最大K元素
设计一个找到数据流中第K大元素的类(class)。注意是排序后的第K大元素,不是第K个不同的元素。
你的 KthLargest 类需要一个同时接收整数 k 和整数数组nums 的构造器,它包含数据流中的初始元素。每次调用 KthLargest.add,返回当前数据流中第K大的元素。
java程序:
public class KthLargest {
int k;
List<Integer> list = new ArrayList<>();
public KthLargest(int k, int[] ints) {
this.k = k;
for (Integer num:ints
) {
list.add(num);
}
}
public int add(int eum) {
//添加新元素
list.add(eum);
//排序
list.sort((a,b)->(a<b?1:-1));
//返回第k大元素
return list.get(k-1);
}
}
--------测试代码--------
public static void main(String[] args) {
KthLargest kthLargest = new KthLargest(3, new int[]{4, 5, 2, 8});
int a = kthLargest.add(3); //4
int b = kthLargest.add(5); //5
int c = kthLargest.add(10); //5
int d = kthLargest.add(9); //8
int e = kthLargest.add(4); //8
}