243. 最短单词距离

题目

给定一个单词列表和两个单词 word1word2,返回列表中这两个单词之间的最短距离。

示例1:

假设 words = ["practice", "makes", "perfect", "coding", "makes"]

1
2
输入: word1 = “coding”, word2 = “practice”
输出: 3

示例2:

1
2
输入: word1 = "makes", word2 = "coding"
输出: 1

提示:

你可以假设 word1 不等于 word2, 并且 word1word2 都在列表里。

解法

解法一:

遍历,遇到对应的单词,判断距离,找到最小的即可。

Java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public int shortestDistance(String[] words, String word1, String word2) {
int index1 = -1;
int index2 = -1;
int result = Integer.MAX_VALUE;
for (int i = 0;i < words.length;i++) {
if (words[i].equals(word1)) {
index1 = i;
if (0 <= index2) {
result = Math.min(result, i - index2);
}
} else if (words[i].equals(word2)) {
index2 = i;
if (0 <= index1) {
result = Math.min(result, i - index1);
}
}
}
return result;
}
0%