题目
给定一个单词列表和两个单词 word1 和 word2,返回列表中这两个单词之间的最短距离。
word1 和 word2 是有可能相同的,并且它们将分别表示为列表中两个独立的单词。
示例:
假设 words = [“practice”, “makes”, “perfect”, “coding”, “makes”].
输入: word1 = “makes”, word2 = “coding”
输出: 1
输入: word1 = “makes”, word2 = “makes”
输出: 3
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/shortest-word-distance-iii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
找俩个有序数组中的差的最小值
这道题和前面的easy版本没什么区别。唯一的区别在于找到俩个数组之后,需要计算他们的之间的最小插值。
最终抽象为就是找俩个有序数组中的差的最小值
while(i < vec1.size() && j < vec2.size())
{
if(vec1[i] < vec2[j])
{
distance = min(distance, vec2[j] - vec1[i]);
i++;
}
else{
distance = min(distance, vec1[i] - vec2[j]);
j++;
}
}
实际效果就是这么一个图,1-10为比较顺序,剩下的21,22都被抛弃了。没有比较的必要性了。