/*
243. Shortest Word Distance
Total Accepted: 10375 Total Submissions: 22370 Difficulty: Easy
Given a list of words and two words word1 and word2, return the shortest distance between these two words in the list.
For example,
Assume that words = ["practice", "makes", "perfect", "coding", "makes"].
Given word1 = “coding”, word2 = “practice”, return 3.
Given word1 = "makes", word2 = "coding", return 1.
Note:
You may assume that word1 does not equal to word2, and word1 and word2 are both in the list.
Hide Company Tags LinkedIn
Hide Tags Array
Hide Similar Problems (M) Shortest Word Distance II (M) Shortest Word Distance III
*/
import java.util.*;
public class ShortestDistance_243 {
public static void main(String[] args) {
String[] words = {"hello", "is", "word", "what", "is", "a ", "word" };
String word1 = "hello";
String word2 = "word";
System.out.printf("Test case %s ", shortestDistance(words, word1, word2) == 2 ? "Success" : "Failed");
}
public static int shortestDistance(String[] words, String word1, String word2) {
// https://leetcode.com/discuss/50234/ac-java-clean-solution
int p1 = -1, p2 = -1, min = Integer.MAX_VALUE;
for (int i = 0; i < words.length; i++) {
if (words[i].equals(word1))
p1 = i;
if (words[i].equals(word2))
p2 = i;
if (p1 != -1 && p2 != -1)
min = Math.min(min, Math.abs(p1 - p2));
}
return min;
}
public static int shortestDistance_mine(String[] words, String word1, String word2) {
// ["hello", "is", "word", "what", "is", "a ", "word"]
List<Integer> list1 = new ArrayList<Integer>();
List<Integer> list2 = new ArrayList<Integer>();
for (int i = 0; i < words.length; i++) {
if (words[i].equals(word1)) {
list1.add(i);
}
if (words[i].equals(word2)) {
list2.add(i);
}
}
int curDistance = words.length - 1, distance = words.length - 1;
for (int i : list1) {
for (int j : list2) {
curDistance = Math.abs(i - j);
distance = Math.min(curDistance, distance);
}
}
return distance;
}
}
243. Shortest Word Distance - easy
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 最近刚刚学习完《WORDPOWER MADE EASY》的第一章how to talk about types,为...
- This is a follow up of Shortest Word Distance. The only d...
- This is a follow up of Shortest Word Distance. The only d...
- Given a list of words and two words word1 and word2, retu...
- 我一开始还以为要从List里找跟given word比较最短的edit distance. 后来发现原来给 2 w...