703. 数据流中的第K大元素
设计一个找到数据流中第K大元素的类(class)。注意是排序后的第K大元素,不是第K个不同的元素。
你的
KthLargest
类需要一个同时接收整数
k
和整数数组
nums
的构造器,它包含数据流中的初始元素。每次调用
KthLargest.add
,返回当前数据流中第K大的元素。
示例:
int k = 3; int[] arr = [4,5,8,2]; KthLargest kthLargest = new KthLargest(3, arr); kthLargest.add(3); // returns 4 kthLargest.add(5); // returns 5 kthLargest.add(10); // returns 5 kthLargest.add(9); // returns 8 kthLargest.add(4); // returns 8
class KthLargest {
List<Integer> list;
int kt;
public KthLargest(int k, int[] nums) {
Arrays.sort(nums);
list=new ArrayList<Integer>();
for(int i=0;i<nums.length;i++)
list.add(nums[i]);
kt=k;
}
public int add(int val) {
if(list.size()==0||val>=list.get(list.size()-1))
list.add(val);
else{
for(int i=0;i<list.size();i++)
{
if(list.get(i)>val)
{
list.add(i,val);
break;
}
}
}
return list.get(list.size()-kt);
}
}
版权声明:本文为qq_33420835原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。