调试中...
调试中...
题目描述
题目描述
题解
题解
提交记录
提交记录
代码
代码
测试用例
测试用例
测试结果
测试结果
中等
相关标签
相关企业
提示

有个内含单词的超大文本文件,给定任意两个不同的单词,找出在这个文件中这两个单词的最短距离(相隔单词数)。如果寻找过程在这个文件中会重复多次,而每次寻找的单词不同,你能对此优化吗?

示例:

输入:words = ["I","am","a","student","from","a","university","in","a","city"], word1 = "a", word2 = "student"
输出:1

提示:

  • words.length <= 100000
通过次数
53.8K
提交次数
73.6K
通过率
73.0%

相关标签

相关企业

提示 1
如果只运行一次算法,请首先考虑寻找最近距离的算法。你应该能够在 O(N) 时间内完成这项工作,其中 N 是文档中的字数。

提示 2
调整你的算法,使它成为可以重复调用的算法的一次执行。它哪里慢?你能优化它吗?

提示 3
你可以构建一个查找表,把每个单词映射到它出现位置的列表。然后怎样找到最近的两个位置呢?

提示 4
如果你有一个每个单词出现次数的列表,那么你实际上需要在两个数组中寻找一对值(每个数组中选一个值),使它们之间的差异最小。这应该是一个与初始算法很相似的算法。

提示 5
能用两个指针遍历两个数组吗?你应该能在 O(A+B)时间内完成,其中 A 和 B 是两个数组的大小。

评论 (0)

《程序员面试金典(第 6 版)》独家授权
本书是原谷歌资深面试官的经验之作,帮助了许多想要加入脸书、苹果、谷歌等 IT 名企的求职者拿到 Dream offer。本专题的 100+ 编程面试题是在原书基础上精心挑选出来的,帮助你轻松应战 IT 名企技术面试。
© 2025 领扣网络(上海)有限公司
0 人在线
行 1,列 1
运行和提交代码需要登录
words =
["I","am","a","student","from","a","university","in","a","city"]
word1 =
"a"
word2 =
"student"
Source