题目:原题链接(中等)
标签:设计、哈希表
解法 | 时间复杂度 | 空间复杂度 | 执行用时 |
---|---|---|---|
Ans 1 (Python) | O ( N 1 + N 2 ) O(N1+N2) O(N1+N2) : N1和N2为两个单词的出现频数 | O ( N ) O(N) O(N) | 92ms (27.84%) |
Ans 2 (Python) | |||
Ans 3 (Python) |
解法一:
class WordDistance:
def __init__(self, words: List[str]):
self.count = collections.defaultdict(list)
self.size = len(words)
for i in range(len(words)):
self.count[words[i]].append(i)
def shortest(self, word1: str, word2: str) -> int:
lst1, lst2 = self.count[word1], self.count[word2]
ans = self.size
i1, i2 = 0, 0
while i1 < len(lst1) and i2 < len(lst2):
idx1, idx2 = lst1[i1], lst2[i2]
ans = min(ans, abs(idx1 - idx2))
if idx1 < idx2:
i1 += 1
else:
i2 += 1
return ans