博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Leetcode刷题篇】leetcode703 数据流中的第k大元素
阅读量:1886 次
发布时间:2019-04-26

本文共 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 PriorityQueue
queue; 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(); } }}

转载地址:http://rwwdf.baihongyu.com/

你可能感兴趣的文章
Maven 项目生成或者update jdk变为1.5的问题
查看>>
IE8下面parseInt('08')、parseInt('09')会转成0
查看>>
Tomcat重启脚本
查看>>
在同一台电脑部署多个Tomcat服务
查看>>
局域网不能访问本机IIS网站的解决方法
查看>>
MySQL 安装步骤
查看>>
SpringBoot执行定时任务
查看>>
win7 64位下redis的安装
查看>>
winform中读写SQLite数据库例子
查看>>
ECharts上手例子
查看>>
SQLite 查询时异常:该字符串未被识别为有效的 DateTime 错误
查看>>
c# Socket发送与接收方法
查看>>
C#实现快捷键(系统热键)响应
查看>>
Windows下nginx+tomcat实现简单的负载均衡
查看>>
winform中SQLite的分页
查看>>
C# WinForm窗体及其控件自适应各种屏幕分辨率
查看>>
winform中dataGridView的简单分页
查看>>
dataGridView几个小技巧
查看>>
RecyclerView Item 行高定义无效的BUG
查看>>
markdown发生HTML渲染组件出错的解决方案
查看>>