有个内含单词的超大文本文件,给定任意两个不同的单词,找出在这个文件中这两个单词的最短距离(相隔单词数)。如果寻找过程在这个文件中会重复多次,而每次寻找的单词不同,你能对此优化吗?
class Solution {
public int findClosest(String[] words, String word1, String word2) {
int len = words.length;
int res = len;
for(int i = 0,p = -1,q = -1;i < len;i++){
String cur = words[i];
if(cur.equals(word1)) p = i;
if(cur.equals(word2)) q = i;
if(p != -1 && q != -1) res = Math.min(res,Math.abs(p-q));
}
return res;
}
}
执行用时:12 ms, 在所有 Java 提交中击败了59.75%的用户
内存消耗:49.1 MB, 在所有 Java 提交中击败了50.92%的用户