【Leetcode刷题篇】leetcode703 数据流中的第k大元素
发布日期:2021-06-29 15:33:33
浏览次数:2
分类:技术文章
本文共 1034 字,大约阅读时间需要 3 分钟。
设计一个找到数据流中第 k 大元素的类(class)。注意是排序后的第 k 大元素,不是第 k 个不同的元素。
请实现 KthLargest 类:
KthLargest(int k, int[] nums) 使用整数 k 和整数流 nums 初始化对象。 int add(int val) 返回当前数据流中第 k 大的元素。
示例:
输入:
[“KthLargest”, “add”, “add”, “add”, “add”, “add”] [[3, [4, 5, 8, 2]], [3], [5], [10], [9], [4]] 输出: [null, 4, 5, 5, 8, 8]
解释:
KthLargest kthLargest = new KthLargest(3, [4, 5, 8, 2]); kthLargest.add(3); // return 4 kthLargest.add(5); // return 5 kthLargest.add(10); // return 5 kthLargest.add(9); // return 8 kthLargest.add(4); // return 8
用优先级队列构建一个小顶堆,然后再add即可
package com.lcz.leetcode;/** * 数据流中第K大元素 * @author LvChaoZhang * */import java.util.*;public class Leetcode703 { class KthLargest{ // 优先级队列 private PriorityQueuequeue; int limit; public KthLargest(int k,int[] nums) { limit = k; queue = new PriorityQueue<>(k); for(int num:nums) { // 调用下面的函数 add(num); } } public int add(int val) { if(queue.size() queue.peek()) { queue.poll(); queue.offer(val); } return queue.peek(); } }}
转载地址:https://codingchaozhang.blog.csdn.net/article/details/109586923 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
很好
[***.229.124.182]2024年04月30日 22时43分45秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
基于java的酒店管理系统的设计与实现
2019-04-29
基于WEB的仓库管理系统的设计与实现
2019-04-29
基于java的web聊天系统
2019-04-29
基于java的俄罗斯方块的设计与实现
2019-04-29
基于java的魂斗罗的设计
2019-04-29
基于java的网页内容管理
2019-04-29
基于java的学生管理系统
2019-04-29
基于java网盘搜索的设计与实现
2019-04-29
基于SSM的仿小米商城源码
2019-04-29
基于SSM的医院人事管理系统的设计与实现
2019-04-29
基于SSM框架的超市管理系统
2019-04-29
基于java的SSM框架理财管理系统的设计与实现
2019-04-29
基于java的图书管理系统的设计与实现
2019-04-29
基于SSM的兼职论坛系统的设计与实现
2019-04-29
基于SSM的酒店管理系统的设计与实现
2019-04-29
基于ssm的汽车租赁系统的设计与实现
2019-04-29
基于ssm框架的名宿网站的设计与实现
2019-04-29
基于java的来访咨询系统的设计与实现
2019-04-29
基于java的医院分诊系统的设计与实现
2019-04-29