本文主要是介绍【LeetCode刷题】--244.最短单词距离II,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
244.最短单词距离II
方法:哈希表+双指针
class WordDistance {HashMap<String,List<Integer>> map = new HashMap<>();public WordDistance(String[] wordsDict) {int len = wordsDict.length;for(int i =0;i< len;i++){String word = wordsDict[i];if(!map.containsKey(word)){map.put(word,new ArrayList<>());}map.get(word).add(i);}}public int shortest(String word1, String word2) {List<Integer> map1 = map.get(word1);List<Integer> map2 = map.get(word2);int size1 = map1.size(),size2 = map2.size();int pos1 = 0,pos2 = 0;int ans = Integer.MAX_VALUE;while(pos1 < size1 && pos2 < size2){int index1 = map1.get(pos1),index2 = map2.get(pos2);ans = Math.min(ans,Math.abs(index1-index2));if(index1 < index2){pos1++;}else{pos2++;}}return ans;}
}/*** Your WordDistance object will be instantiated and called as such:* WordDistance obj = new WordDistance(wordsDict);* int param_1 = obj.shortest(word1,word2);*/
这篇关于【LeetCode刷题】--244.最短单词距离II的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!