Shortest Word Distance
给一个字符串数组, 并给出两个words, 求最短距离. 直接用map
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
public static int shortestDistance(String[] words, String word1, String word2) { int min = Integer.MAX_VALUE; int index = -1;// index标记找到word1或者word2的其中一个的index for(int i = 0; i < words.length; i++) { if(words[i].equals(word1) || words[i].equals(word2))// 如果当前的元素是其中一个 { if(index != -1 && !words[index].equals(words[i]))// 如果已经找到了另一个, 并且当前的不是上次找到的那个 { min = Math.min(i - index, min);//取最小值 } index = i;//更新当前的index, 这是一个贪婪算法, 所以每次都要更新. } } return min; } } |
Leave A Comment