【发布时间】:2023-03-25 00:47:02
【问题描述】:
这是一道面试题: 假设您有无限量的排序数据进入,实现一种查找特定时间戳的方法。
我能想到的是将数据保存在日志文件或类似文件中,并使用 sed 命令查找该特定时间戳的日志条目。 我不知道我的想法是否正确。 其他解决方案?
【问题讨论】:
这是一道面试题: 假设您有无限量的排序数据进入,实现一种查找特定时间戳的方法。
我能想到的是将数据保存在日志文件或类似文件中,并使用 sed 命令查找该特定时间戳的日志条目。 我不知道我的想法是否正确。 其他解决方案?
【问题讨论】:
这似乎是一个开放式问题。您的解决方案是将数据保存在日志文件中,但是如果数据量无限,您还需要不切实际的磁盘空间。问题大概应该是这样分析的。
乍一看,有无限的数据流进来,并没有说明它来的速度是多少。假设速率为每秒r,您每秒只能检查n 时间戳。如果 r 就不是很有趣了
如果 r > n 你只能在每个r/n 整数中检查一个。然后,这意味着您需要维护一个大小为r/n 的缓冲区。输入已排序的事实意味着您可以检查缓冲区的末端并查看所需的时间戳是否在范围内。如果是,则遍历缓冲区并确定所需的时间戳。
面试提示:这些问题通常是开放式的,以便判断您的思维过程。如果未指定(就像这里一样),您应该要求澄清。
【讨论】: