【LeetCode刷题】--244.最短单词距离II

244.最短单词距离II

image-20231220203628672

方法:哈希表+双指针

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);
 */

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2023-12-21 06:58:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-21 06:58:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-21 06:58:04       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-21 06:58:04       20 阅读

热门阅读

  1. 环境监测升级:钡铼技术的水利环保工业路由器

    2023-12-21 06:58:04       42 阅读
  2. node.js事件循环相关步骤

    2023-12-21 06:58:04       33 阅读
  3. 分布式编译distcc

    2023-12-21 06:58:04       51 阅读
  4. git 的碎步浪荡,添加仓库子项目,迁移仓库

    2023-12-21 06:58:04       42 阅读
  5. ElasticSearch插件手动安装

    2023-12-21 06:58:04       48 阅读
  6. webrtc支持的最小宽度和高度

    2023-12-21 06:58:04       47 阅读