博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj2456 mode
阅读量:5347 次
发布时间:2019-06-15

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

Time Limit: 1 Sec  Memory Limit: 1 MB

Description

给你一个n个数的数列,其中某个数出现了超过n div 2次即众数,请你找出那个数。

Input

第1行一个正整数n。

第2行n个正整数用空格隔开。

Output

    一行一个正整数表示那个众数。

Sample Input

5
3 2 3 1 3

Sample Output

3

HINT

100%的数据,n<=500000,数列中每个数<=maxlongint。



zju2132 The Most Frequent Number

这题如果内存限制没那么坑的话直接哈希或者sort就水过了……

可是这限制实在太坑了

这题有个神算法:因为保证有一个数出现了超过n/2次,所以直接用num保存数字、用ans保存出现次数,每次出现和它不一样的就把ans抵消掉1,最后一定会出现保存的数的ans>1。最后num就是答案

话说用快速读入就是优越……

#include
inline int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f;}int n,ans,num;int main(){ n=read(); while (n--) { int x=read(); if (ans==0){ans=1;num=x;continue;} if(x==num) ans++;else ans--; } printf("%d",num);}

转载于:https://www.cnblogs.com/zhber/p/4035966.html

你可能感兴趣的文章
Java 数据库简单操作类
查看>>
IO字节流
查看>>
这样学Linux基本命令,事半功倍
查看>>
2 Modals of necessity
查看>>
sqlite错误 Abort due to constraint violation column id is not unique id没开启自动增长
查看>>
要想使用线程 想去方法 应该传入object 传参
查看>>
[网络流24题]飞行员配对方案问题
查看>>
【练习】创建密码复杂度验证
查看>>
具有浏览器检测功能的登录页面模板
查看>>
Couchbase的bug引起的缓存服务器CPU占用高
查看>>
02 web应用程序
查看>>
Javascript 模块化理解
查看>>
贪吃蛇-设计文档
查看>>
Ajax全局加载框(Loading效果)的配置
查看>>
webpack配置之代码优化
查看>>
20165320 Java实验三:敏捷开发与XP实践
查看>>
Android Studio生成成员变量时自动加上m前缀
查看>>
Python 爬虫的工具列表 附Github代码下载链接
查看>>
时间正则判定
查看>>
关于Struts传递json给easyui的随笔
查看>>