这是一个面试问题: 假设您有无限量的已排序数据,请实现查找特定时间戳的方法。
我能想到的是将数据保存在日志文件或类似内容中,并使用sed命令查找该特定时间戳的日志条目。 我不知道我认为是否正确。 其他解决方案?
答案 0 :(得分:3)
这似乎是一个开放式的问题。您的解决方案是将数据保存在日志文件中,但是如果数据量无限,那么您将需要不切实际的磁盘空间量。这个问题可能应该按照以下方式进行分析。
乍一看,随着无限的数据流进入,没有说明它的到来速度是多少。假设每秒的速率为r
,您每秒只能检查n
个时间戳。如果r <= n。,则不是很有趣
如果r>你只能在每个r/n
整数中检查一个。然后,这意味着您需要维护大小为r/n
的缓冲区。输入已排序的事实意味着您可以检查缓冲区的末尾并查看所需的时间戳是否在范围内。如果是,则通过缓冲区并确定所需的时间戳。
采访提示:为了判断您的思维过程,这些问题通常都是开放式的。如果它未被指定(就像它在这里),你应该要求澄清。