LeetCode 245. 最短单词距离 III
题目描述
;给定一个字符串数组 wordsDict 和两个字符串 word1 和 word2 ,返回列表中这两个单词之间的最短距离。
注意:word1 和 word2 是有可能相同的,并且它们将分别表示为列表中 两个独立的单词 。
&emsp&emsp示例 1:
&emsp&emsp输入:wordsDict = [“practice”, “makes”, “perfect”, “coding”, “makes”], word1 = “makes”, word2 = “coding”
&emsp&emsp输出:1
1 <= wordsDict.length <= 105
1 <= wordsDict[i].length <= 10
wordsDict[i] 由小写英文字母组成
word1 和 word2 都在 wordsDict 中
一、解题关键词
二、解题报告
1.思路分析
2.时间复杂度
3.代码示例
class Solution {
public int shortestWordDistance(String[] wordsDict, String word1, String word2) {
int len = wordsDict.length;
int ans = len;
if(word1.equals(word2)){
int prev = -1;
for(int i = 0; i < len;++i ){
String word = wordsDict[i];
if(word.equals(word1)){
if(prev >= 0){
ans = Math.min(ans,i - prev);
}
prev = i;
}
}
}else{
int index1 = -1,index2 = -1;
for(int i = 0;i < len;i++){
String word = wordsDict[i];
if(word.equals(word1))index1 = i;
else if(word.equals(word2)) index2 = i;
if(index1 >= 0 && index2 >= 0) ans = Math.min(ans,Math.abs(index1 - index2));
}
}
return ans;
}
}
2.知识点