今天去面试,面到了 TopN 问题,小弟我回答的挺溜的,但是面试官突然说 24 小时内 TopN 问题,我就迷茫了,无从下手。误差可以在 5 分钟内。
想知道大家是怎么解决的。
想知道大家是怎么解决的。
1
mxT52CRuqR6o5 Feb 24, 2021
好像只能硬算吧,所以没法做到实时
|
2
sizhitu Feb 24, 2021 via iPhone 5 分钟一个桶么
|
3
GGGG430 Feb 24, 2021 via iPhone
redis 的 sorted set 行不
|
4
zjbztianya Feb 24, 2021
slide window?
|
5
yemoluo OP @zjbztianya 对,就是他的变形
|
6
xupefei Feb 24, 2021 via iPhone
二楼说的对,桶排序之后全局提取 top N 。
|
7
suiterchik Feb 24, 2021
也有实时的方案,Misra-Gries 算法,这个是流式的算法
缺点是数据不够大 or 长尾不够显著的时候会有误差,但你都需要用这个算法了,数据量显然足够 |
8
ahill Feb 25, 2021
|
9
ahill Feb 25, 2021
|
10
oldmanong Feb 26, 2021 via iPhone
Flink 滑动窗口
|