首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
牛客8028856号
2017-08-12 22:03
北京理工大学
关注
已关注
取消关注
100w个数中找出最大的100个数
100w个数中找出最大的100个数,求最优解
提示
全部评论
推荐
最新
楼层
鸣月my
华为_消费者云服务部_软件开发工程师
1. 算法如下:根据快速排序划分的思想 (1) 递归对所有数据分成[a,b)b(b,d]两个区间,(b,d]区间内的数都是大于[a,b)区间内的数 (2) 对(b,d]重复(1)操作,直到最右边的区间个数小于100个。注意[a,b)区间不用划分 (3) 返回上一个区间,并返回此区间的数字数目。接着方法仍然是对上一区间的左边进行划分,分为[a2,b2)b2(b2,d2]两个区间,取(b2,d2]区间。如果个数不够,继续(3)操作,如果个数超过100的就重复1操作,直到最后右边只有100个数为止。 2.先取出前100个数,维护一个100个数的最小堆,遍历一遍剩余的元素,在此过程中维护堆就可以了。具体步骤如下: step1:取前m个元素(例如m=100),建立一个小顶堆。保持一个小顶堆得性质的步骤,运行时间为O(lgm);建立一个小顶堆运行时间为m*O(lgm)=O(m lgm); step2:顺序读取后续元素,直到结束。每次读取一个元素,如果该元素比堆顶元素小,直接丢弃 如果大于堆顶元素,则用该元素替换堆顶元素,然后保持最小堆性质。最坏情况是每次都需要替换掉堆顶的最小元素,因此需要维护堆的代价为(N-m)*O(lgm); 最后这个堆中的元素就是前最大的10W个。时间复杂度为O(N lgm)。 3.分块查找 先把100w个数分成100份,每份1w个数。先分别找出每1w个数里面的最大的数,然后比较。找出100个最大的数中的最大的数和最小的数,取最大数的这组的第二大的数,与最小的数比较。。。。
点赞
回复
分享
发布于 2017-08-12 22:41
已注销
建立一个最小堆,一个一个过数据。
点赞
回复
分享
发布于 2017-08-12 22:06
农药有毒
暨南大学番禺校区 Java
http://blog.csdn.net/cslbupt/article/details/65935577
点赞
回复
分享
发布于 2017-08-12 23:08
牛客652748021号
华南理工大学 安卓
快排
点赞
回复
分享
发布于 2020-03-05 20:19
rogn
武汉大学 C++
冒泡100次,复杂度1e8,一般的电脑不要1s吧
点赞
回复
分享
发布于 2020-03-05 20:16
Senix
苏州大学 Java
TopK问题
点赞
回复
分享
发布于 2017-08-13 10:01
微信公众号JavaQ
东北大学 Java
切分、排序、合并排序
点赞
回复
分享
发布于 2017-08-13 07:59
你群最蠢
南京大学 前端工程师
最小堆或者快排吧
点赞
回复
分享
发布于 2017-08-12 23:51
zhaoyang253
天津大学 C++
BFPRT算法
点赞
回复
分享
发布于 2017-08-12 23:11
晚安丶胖不啦叽
华中科技大学 C++
最小堆 nlogk
点赞
回复
分享
发布于 2017-08-12 22:26
Waitibg
大连外国语大学 Java
TopK问题
点赞
回复
分享
发布于 2017-08-12 22:22
兄弟找我内推呗
字节跳动_UG_算法
100w个数内存可以放置,一般堆排100个没问题啊
点赞
回复
分享
发布于 2017-08-12 22:08
牛客1288965444
北京语言大学 Java
按一个数4字节,100万个数也就4m大小,直接小顶堆
点赞
回复
分享
发布于 2017-08-12 22:06
暂无评论,快来抢首评~
相关推荐
昨天 15:41
青海民族大学 Java
字节日常实习能转正吗?
我没赶上暑期实习的车,只能赶日常实习的这趟车,最近也是刚刚入职字节!部门保密,base北京!时间线是在6月份速通的!6.3BOSS投递6.4HR加我微信6.5一面6.6二面6.9三面6.10offer6.13确定入职日期6.21入职今天和其他实习生一起吃饭的时候听到他们说日常实习也有名额就是比较少,不知道是不是真的?我要直接问mt吗?
投递字节跳动等公司9个岗位
点赞
评论
收藏
分享
07-01 14:16
门头沟学院 硬件开发
八股怎么背
八股刚起步,看了javaguide,小林coding,还有面渣,感觉面渣是体验最好的,请问只看面渣够用吗,有不完善的需要补吗?
点赞
评论
收藏
分享
昨天 16:13
嘉应学院 Python
请问这个是骗子吗😂
xiaolihuam...:
很明显骗子,如果是hr直接约你面试了,哪用得着内推,如果是员工的话,你得多优秀,一线员工直接加你微信,
点赞
评论
收藏
分享
06-30 15:16
已编辑
门头沟学院 前端工程师
欢聚集团 前端一面凉经但收获满满!
base 广州可以说是收获满满了,虽然在一周后很遗憾的收到了失败的消息,但回想整个过程真的很满足面试官口音我觉着特别亲切哈哈(福建人在北方上学很久没听到类似的口音了),面试官人也很好,会引发思考,还会深挖一些我从来没注意到的点(哈哈我还得练啊),然后给出场景,看潜力和逻辑啥的,而且我很多点都是在他引导后答出来的(我都不熟事件委托),怕误解我的表达,模糊的地方他会再复述一遍我说的内容,收获最大的面试莫过于此(六月初面的,现在想来还是很感慨~)继续往下看~JS部分:事件监听的时候会有冒泡捕获阶段,在事件触发的时候,他的生命周期是怎么样的?点一个按钮,它是先经历捕获还是先冒泡?在什么场景下会去监听一...
查看14道真题和解析
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
26
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
高德-交易业务-Java日常-面经(OC)
9023
2
...
毕业之后再也没人给我兜底了
8954
3
...
快手凉经
8329
4
...
差点忘了以前是干嘛的,这个梗就是2025年最大的一坨
7414
5
...
工资还是得攒着
5211
6
...
大家觉得测试还能活多久
4596
7
...
字节暑期实习刚oc要不要去
3917
8
...
制造业提前批合集(个人版,大伙速投哇
3687
9
...
工资不花,难道存起来?
3464
10
...
女友问我为什么进字节后不理她了
3051
创作者周榜
更多
正在热议
更多
#
你觉得实习能学到东西吗
#
18856次浏览
463人参与
#
秋招什么时候开投比较合适?
#
8234次浏览
168人参与
#
现代汽车前瞻技术研发急速编程挑战赛
#
22646次浏览
188人参与
#
实习,不懂就问
#
30659次浏览
529人参与
#
软开人,秋招你打算投哪些公司呢
#
101155次浏览
951人参与
#
如何准备秋招
#
12538次浏览
224人参与
#
运营人求职交流聚集地
#
141208次浏览
989人参与
#
每个月的工资都是怎么分配的?
#
15517次浏览
328人参与
#
你觉得现在还能进互联网吗?
#
4901次浏览
102人参与
#
预测一下26届秋招形势
#
26531次浏览
247人参与
#
你们公司几号发工资
#
19152次浏览
129人参与
#
如果你有一天可以担任公司的CEO,你会做哪三件事?
#
28240次浏览
456人参与
#
晒一晒你收到的礼盒
#
70322次浏览
403人参与
#
打工人的精神状态
#
54371次浏览
993人参与
#
硬件应届生薪资是否普遍偏低?
#
72714次浏览
511人参与
#
高考出分的那一天,我__
#
17309次浏览
269人参与
#
大疆今年的机械笔试难吗?
#
41549次浏览
456人参与
#
来聊聊你认为的薪资天花板是哪家?
#
31002次浏览
175人参与
#
牛客十周岁生日快乐
#
145263次浏览
1613人参与
#
机械实习一天多少钱合适?
#
29058次浏览
177人参与
#
大家实习每天都在干啥
#
82958次浏览
506人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务