博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
剑指offer 面试题64 数据流的中位数
阅读量:4562 次
发布时间:2019-06-08

本文共 1239 字,大约阅读时间需要 4 分钟。

struct cmp{	bool operator()(double a, double b)	{		return a > b;	}};class Solution {public:   void Insert(int num){	if (((maxHeap.size() + minHeap.size()) & 1 )== 0)//如果是偶数,插入到最大堆里面	{		if (minHeap.size()>0&&num > minHeap.top())		{			int numtmp = minHeap.top();			minHeap.pop();			minHeap.push(num);			num = numtmp;		}		maxHeap.push(num);	}	else	{		if (maxHeap.size()>0&&num < maxHeap.top())		{			int numtmp = maxHeap.top();			maxHeap.pop();			maxHeap.push(num);			num = numtmp;		}		minHeap.push(num);	}}double GetMedian(){	if (((maxHeap.size() + minHeap.size()) & 1) == 0)//如果是偶数	{		if (maxHeap.size() + minHeap.size() == 0) return 0;		return (minHeap.top() + maxHeap.top()) / 2;	}	else	{		return maxHeap.size() > minHeap.size() ? maxHeap.top() : minHeap.top();	}}private :    priority_queue
maxHeap; priority_queue
,cmp> minHeap;};

  数组中出现次数超过一半的数

class Solution {public:    int MoreThanHalfNum_Solution(vector
numbers) { if(numbers.size()==0) return 0; int pre=numbers[0]; int cnt=1; for(int i=1;i
(numbers.size())/2) return pre; else return 0; }};

  

转载于:https://www.cnblogs.com/wuxiangli/p/6094056.html

你可能感兴趣的文章
Linux磁盘分区的实用管理命令
查看>>
MFC控件编程之鼠标跟键盘消息
查看>>
【ASP.NET Core】给路由规则命名有何用处
查看>>
linux(4) vi编辑/删除、复制、粘贴 /bash shell 环境变量设置/数据流重定向 | 的用法...
查看>>
Ubuntu 下面安装 JDK1.7
查看>>
ECharts的x轴和y轴均使用数值类型
查看>>
Windows Phone 7Silverlight控件之--Panorama
查看>>
Liunx下的有关于tomcat的相关操作 && Liunx 常用指令
查看>>
PMP考试通过
查看>>
js声明 对象,数组 的方法
查看>>
Ftp服务配置
查看>>
【Spring】---属性注入
查看>>
搭建Hibernate环境
查看>>
【MyBatis】-----【MyBatis】---表级联系【一对多】
查看>>
MySQL 存储过程参数IN OUT INOUT区别
查看>>
2018.08.30 bzoj4720: [Noip2016]换教室(期望dp)
查看>>
2018.10.13 bzoj1070: [SCOI2007]修车(费用流)
查看>>
redis基本操作
查看>>
学习进度7
查看>>
暑期生活1
查看>>