设计一个找到数据流中第 k 大元素的类(class)。注意是排序后的第 k 大元素,不是第 k 个不同的元素。

请实现 KthLargest 类:

KthLargest(int k, int[] nums) 使用整数 k 和整数流 nums 初始化对象。
int add(int val) 将 val 插入数据流 nums 后,返回当前数据流中第 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

解题思路

维护一个大小为k的小根堆,堆顶元素就是第k小的元素

代码

    class KthLargest {int s;PriorityQueue<Integer> priorityQueue=new PriorityQueue<>();public KthLargest(int k, int[] nums) {s=k;for (int num : nums) {priorityQueue.add(num);}while (priorityQueue.size()>k)priorityQueue.poll();}public int add(int val) {priorityQueue.add(val);if(priorityQueue.size()>s)priorityQueue.poll();return priorityQueue.peek();}}/*** Your KthLargest object will be instantiated and called as such:* KthLargest obj = new KthLargest(k, nums);* int param_1 = obj.add(val);*/

leetcode 703. 数据流中的第 K 大元素(堆)相关推荐

  1. ⭐算法入门⭐《堆》中等02 —— LeetCode 703. 数据流中的第 K 大元素

    文章目录 一.题目 1.题目描述 2.基础框架 3.原题链接 二.解题报告 1.思路分析 2.时间复杂度 3.代码详解 三.本题小知识 四.加群须知 一.题目 1.题目描述   设计一个找到数据流中第 ...

  2. Java实现 LeetCode 703 数据流中的第K大元素(先序队列)

    703. 数据流中的第K大元素 设计一个找到数据流中第K大元素的类(class).注意是排序后的第K大元素,不是第K个不同的元素. 你的 KthLargest 类需要一个同时接收整数 k 和整数数组n ...

  3. LeetCode 703. 数据流中的第K大元素(优先队列)

    1. 题目 设计一个找到数据流中第K大元素的类(class). 注意是排序后的第K大元素,不是第K个不同的元素. 你的 KthLargest 类需要一个同时接收整数 k 和整数数组nums 的构造器, ...

  4. leetcode 703. 数据流中的第K大元素 最小堆解法 c语言

    如题: 设计一个找到数据流中第K大元素的类(class).注意是排序后的第K大元素,不是第K个不同的元素. 你的 KthLargest 类需要一个同时接收整数 k 和整数数组nums 的构造器,它包含 ...

  5. Leetcode 703. 数据流中的第K大元素 解题思路及C++实现

    解题思路: 使用一个最小堆来存储数据,在C++中,对应是#include<queue>头文件中的priority_queue. 程序逻辑:KthLargest类初始化的时候,先根据nums ...

  6. 703. 数据流中的第 K 大元素

    703. 数据流中的第 K 大元素: 题目链接 :[703. 数据流中的第 K 大元素]https://leetcode-cn.com/problems/kth-largest-element-in- ...

  7. 174. 地下城游戏;剑指 Offer 40. 最小的k个数;378. 有序矩阵中第K小的元素;703. 数据流中的第K大元素

    一些恶魔抓住了公主(P)并将她关在了地下城的右下角.地下城是由 M x N 个房间组成的二维网格.我们英勇的骑士(K)最初被安置在左上角的房间里,他必须穿过地下城并通过对抗恶魔来拯救公主. 骑士的初始 ...

  8. 从C语言的角度重构数据结构系列(七)-数据结构堆知识求解数据流中的第K大元素

    前言 在这里给自己打个广告,需要的小伙伴请自行订阅. python快速学习实战应用系列课程 https://blog.csdn.net/wenyusuran/category_2239261.html ...

  9. 数据流中的第k大元素的golang实现

    设计一个找到数据流中第K大元素的类(class).注意是排序后的第K大元素,不是第K个不同的元素. 你的 KthLargest 类需要一个同时接收整数 k 和整数数组nums 的构造器,它包含数据流中 ...

最新文章

  1. R语言ggplot2可视化:使用geom_smooth函数基于lm方法为每个分组的部分数据(subset data)拟合趋势关系曲线、对指定范围的数据拟合曲线
  2. java shape_Java 读取shape文件
  3. 计算机排版高级理论知识试卷,2017年9月计算机二级考试《MS Office高级应用》操作题强化提分卷(1)...
  4. Avalanche发布AvalancheGo v1.2.3版本
  5. BZOJ 1801: [Ahoi2009]chess 中国象棋( dp )
  6. python os.path.splitext()的用法_Python中的os.path路径模块中的操作方法总结
  7. Qt 酷炫动画 PictureFlow
  8. 论山寨手机与Android 【6】MTK手机的基带芯片
  9. MLA格式应该如何正确引用?
  10. 非平衡电桥电阻计算_用非平衡电桥如何测量电阻_非平衡电桥测量电阻详解
  11. hbuilderx为什么打不开_windows系统,HBuilderX无法启动、点击无反应、或启动报错的解决方案...
  12. 计算机想ping一下网络,Ping命令以检测Windows7下的计算机网络速度
  13. Arduino作为编程器读写BIOS、bootloader、uboot或者breed
  14. 计算机音乐名词解释,音乐常见名词解释
  15. 【数据科学家】如何成为一名数据科学家?
  16. python查看某个函数方法具体有哪些参数怎么做
  17. 如何理解 0.1+0.2
  18. 利用MUI+个推实现APP消息推送
  19. 分享一款屏幕录制软件,无需安装,可直接将操作屏幕录制起来--
  20. python计算线段夹角

热门文章

  1. 进程的挂起以及可重入函数
  2. Maven报错找不到jre
  3. codeforces CF438D The Child and Sequence 线段树
  4. 敏捷管理之绩效考核方案
  5. C# 序列化与反序列化json
  6. linux install StarDict
  7. Android 如何调用系统默认浏览器访问
  8. STL学习笔记(数值算法)
  9. UITableView,UICollectionView,UIScrollView快速返回顶部
  10. Java lamda表达式快速分组