Shortest Word Distance I&II&III

Shortest Word Distance I&II&III_第1张图片

我一开始还以为要从List里找跟given word比较最短的edit distance. 后来发现原来给 2 words

这样看这题还是很简单的。。暴力解法来说。。

Shortest Word Distance I&II&III_第2张图片

我一开始想到的方法其实是这个One-pass solution. 但是一直没想到如何确认两个words都搜索到了。。。这里有一个Trick: 设两个index, 初始化为-1. 如果都找到了,他们都会有赋值,不是-1. 这个算法细思及恐。。。有一种扫描线的思想在里头

Shortest Word Distance I&II&III_第3张图片

Follow-up:

如果我们repeatedly call WordDistance function的话,如何优化这个class。很明显我们要记住之前的结果,所以基本上会想到memorization---》 HashMap。

初步想法就是把这个单词的所有出现位置记录起来。然后比较shortest distance的时候,

从Map里找出2个单词所有出现的位置,然后进行比较。

比较的地方比较tricky,并不是暴力2个Loop遍历所有情况。

用双指针记录两个list的position。然后比较目前word1 还是word2 的位置在前面来判断移动哪一个。

Shortest Word Distance I&II&III_第4张图片
Shortest Word Distance I&II&III_第5张图片

你可能感兴趣的:(Shortest Word Distance I&II&III)