当前位置: 首页 > article >正文

C++算法入门练习——数据流第K大元素

现有一个初始为空的序列S,对其执行n个操作,每个操作是以下两种操作之一:

  1. 往序列S中加入一个正整数x;
  2. 输出当前序列S​中第k​大的数。

其中,第k大是指将序列从大到小排序后的第k个数。

利用stl里的priority_queue自动实现最大堆排序。

这里用个小技巧,输入时,如果已经当前堆有了k个数,那么再输入一个数后,要弹出,这样就可以保持堆里只包含k个数,而堆顶的数就是第k大的数。

完整代码如下:

#include <iostream>
#include <string>
#include <queue>
#include <vector>
#include <algorithm>
using namespace std;

int main(){
	priority_queue<int,vector<int>,greater<int>> q;
	int n,k;
	cin>>n>>k;
	string stemp;
	int temp; 
	for(int i=0;i<n;i++){
		cin>>stemp;
		if(stemp=="Push"){
			cin>>temp;
			q.push(temp);
			if(q.size()>k){
				q.pop();
			}
		}
		else{
			if(q.size()>=k){
				temp = q.top();
				cout<<temp<<endl;
			}
			else{
				cout<<"-1"<<endl;
			}
		}
	}
	return 0;
} 


http://www.kler.cn/news/150079.html

相关文章:

  • JavaWeb | JSP访问数据库、JDBC操作
  • 学习计划计划执行记录
  • 【数据结构】——解决topk问题
  • 存储服务器特征是什么
  • 零基础学Python的第四天||字符串(1)
  • 力扣:184. 部门工资最高的员工(Python3)
  • python getattr() setattr() hasattr() delattr()内置函数详解
  • 智慧博物馆视频监控系统设计,可视化AI智能分析技术助力博物馆多维度监管
  • SparkContext初始化
  • 错误 LNK2001 无法解析的外部符号 __imp__CrtDbgReport
  • 短 URL 生成器设计:百亿短 URL 怎样做到无冲突?
  • 2023.11.28 MyBatis 中 #{} 和 ${} 的区别
  • 【ZEDSLAM】Ubuntu18.04系统ZED 2i双目相机SDK安装、联合标定、SLAM测试
  • 离散化笔记
  • 在与客户打交道过程中为什么客户不信任你?
  • 阿里云语雀频繁崩溃,有什么文档管理工具是比较稳定的?
  • 在虚拟机搭建nignx,和使用本地访问nginx的情况
  • viple模拟器使用(三):unity模拟器中实现沿右墙迷宫算法
  • C/C++ Zlib实现文件压缩与解压
  • 集合的使用
  • leetcode:随机链表的复制
  • 【Python】获取ip
  • NTT 的各类优化:Harvey、PtNTT,Intel AVX2、ARM Neon、GPGPU
  • oracle的sysaux使用量排查sql
  • 【ChatGLM3-6B】Docker下部署及微调
  • 6.golang函数
  • C语言变量和常量
  • Veras:Revit AI渲染插件
  • Mybatis 使用枚举作为查询条件
  • Linux:Ubuntu系统安装软件