狗家电面

刚面的狗家电面。

给一个信息流,从中读取数据,如果10秒以内相同的数据没有出现,将之输出,否则不要输出。
Eg [“foo”,“foo”,“foo”,“foo”], 每个"foo"5秒一次
输出[“foo”,“foo”]
lz 用map给了一个n square 的解法
follow up1:
你的code如果用在Google的critical数据流有什么问题?如何改善
其实就是map会一直存数据,删掉太老的改善space complexity.
follow up2:
O(n)解法

电话没有口音,小哥人还是很好的,一直在给提示。lz太迟钝了,小哥给提示了有时都没反应过来。求一个onsite。

补充内容 (2018-11-16 04:36):
有同学没看懂题目,怪lz没解释清楚。
输入的数据流是实时的。这个例子里第一个foo出现在第0秒,第二个foo出现在第5秒,第二个距第一个5秒,所以不输出,第三个出现在10秒,距离上一个输出已经过去了10秒,输出. etc

补充内容 (2018-11-16 12:44):
不好意思lz刚刚有点迷糊。是第二问的时间n square,第一问就简单地用map, O(N)

力扣叁无酒

不好意思,没有看懂example,为什么输出2个"foo"?

“如果10秒以内相同的数据没有出现,将之输出,否则不要输出” 楼主的例子不是每五秒就有一个foo嘛 不是应该输出""?

log rate limit

输入的数据流是实时的。这个例子里第一个foo出现在第0秒,第二个foo出现在第5秒,第二个距第一个5秒,所以不输出,第三个出现在10秒,距离上一个输出已经过去了10秒,输出,最后一个出现在15秒,距上一个输出5秒,不输出。

0秒一个 10秒一个
我的理解

用一个hashmap存unique字符串key和最后一次输出时间可不可以On

楼主是咋实n^2

thanks for sharing the infromation