字节面试一道topK没答出来,请教各位大佬
java吧
全部回复
仅看楼主
level 1
sick白牧
楼主
有1T的int数据,内存肯定放不下,问如何得到这些数据里出现频率最高的100个数字?
2021年05月11日 11点05分
1
level 9
谷雨念安
经典分治,切成无数个小文件统计再逐步汇总
2021年05月11日 11点05分
2
sick白牧
我问他说小文件的统计表内存也放不下...
2021年05月11日 12点05分
谷雨念安
@sick白牧
写文件里?
2021年05月11日 12点05分
谷雨念安
@sick白牧
实在不行我在指定某个目录下以文件名为coung-number的形式创建文件,统计的时候改文件名就完事了,改完我直接ll | head -100截断'-',输出数字就可以了
2021年05月11日 12点05分
谷雨念安
@谷雨念安
噢,不对,linux文件名不是这么排的,往文件里面追加1就行了,到时候按文件大小取前100
2021年05月11日 12点05分
level 14
暮色妖娆丶😘
贴吧算法一般都很差
2021年05月11日 13点05分
3
sick白牧
可这就是面java岗考的啊,光刷java不找工作也没用=。=
2021年05月11日 14点05分
sick白牧
哦不对,字节不用java...
2021年05月11日 14点05分
这边建议你爬🐶
@sick白牧
字节有JAVA啊
2021年05月12日 08点05分
sick白牧
@这边建议你爬🐶
暑期实习后台这个说是python和go,但只要会一门语言就能投,我自己平时用java
2021年05月13日 08点05分
level 6
小李不吃鱼
hash分治加最小堆
2021年05月11日 13点05分
4
sick白牧
@小李不吃鱼
我是真吃错药了。。。前一天晚上睡不着吃褪黑素,结果第二天白天才开始起效果,面试完了我直接躺睡
2021年05月11日 16点05分
sick白牧
刚百度了下,好像懂了,谢谢大佬
2021年05月11日 14点05分
小李不吃鱼
@sick白牧
老哥实习还是校招啊
2021年05月11日 15点05分
sick白牧
@小李不吃鱼
研二,暑期实习
2021年05月11日 16点05分
level 1
无奶单走👻
这个问题,几年前我学数据结构算法时,几年前我的大佬同学就问过我。
。。。。
2021年05月11日 14点05分
5
level 7
wind乀
二叉堆最小堆
2021年05月11日 14点05分
6
level 10
迪恩国王♂
可以去了解下数据库orderby咋实现的
limit:堆选
无limit:快排
超过buffer:归并排
然后你可以了解下分表分库的limit咋实现的
或者有一道经典的25匹马找前三的问题
基础题
2021年05月12日 01点05分
8
level 9
夜灬色美景
MappedByteBuffer文件内存映射,轻松搞定
2021年05月12日 02点05分
9
level 6
-氺氺-
最小堆
2021年05月12日 04点05分
11
sick白牧
还没说一样
怎么建堆呢?怎么解决内存不够统计的问题
2021年05月12日 04点05分
level 8
干吾妹小埋
算一下int类型所有数最多占用内存空间,是2的32次方也就是4g个数。这里映射成int数组就行了。如果太小了,比如用byte,计数的数范围可能不够用,然后在对应位置上存储计数,算上虚拟内存一般是够用的。
2021年05月12日 05点05分
12
sick白牧
人家说了不行。
2021年05月12日 12点05分
level 1
温酒清香
读100个数据到内存,建堆,然后再读数据更新堆,时间复杂度o(nlog100)
2021年05月12日 06点05分
14
猪蹄6加1
读取到相同数量的覆盖掉么?
2021年05月12日 08点05分
无敌暴龙战士本尊
问题这个是对频率排序,不是值排序呀
2021年05月12日 08点05分
温酒清香
@无敌暴龙战士本尊
好吧,没仔细看题
2021年05月12日 08点05分
level 8
猪蹄6加1
内存放不下,用文件存储统计过程次数。用文件做草稿,最后统计。
2021年05月12日 08点05分
15
sick白牧
我这样说了,不让这样,因为就是考算法,不是给解决方案
2021年05月12日 12点05分
level 1
明明我超帅的😳
看题目描述内存放不下,似乎是外部排序?
2021年05月12日 08点05分
16
level 6
陸遊😹
丢进hdfs mapreduce
2021年05月12日 08点05分
17
level 8
纯爱天下第一💢
定一个int[Integer.MAX] list的数组不就行了吗 然后找到一个数字就是list[num]=list[num]+1,最后再排序,如果他的内存连一个数组都放不下的话那就不知道了
2021年05月12日 09点05分
19
sick白牧
确实完整频率表是存不下的
2021年05月12日 12点05分
贴吧用户_0D8AP7J
这样内存也很大了吧
2021年06月07日 23点06分
1
2
3
尾页