• LeetCode 面试题 17.11. 单词距离


    题目

    有个内含单词的超大文本文件,给定任意两个不同的单词,找出在这个文件中这两个单词的最短距离(相隔单词数)。如果寻找过程在这个文件中会重复多次,而每次寻找的单词不同,你能对此优化吗?

    示例:

    输入:words = ["I","am","a","student","from","a","university","in","a","city"], word1 = "a", word2 = "student"
    输出:1

    提示:

    words.length <= 100000

    思路

    双指针,遍历字符串数组,不断维护两个指针即可。

    AC代码

    点击查看代码
    class Solution {
        public int findClosest(String[] words, String word1, String word2) {
            int index1 = -1;
            int index2 = -1;
            int ans = 100001;
            for(int i=0; i<words.length; i++) {
                String word = words[i];
                if( word.equals(word1) ) {
                    index1 = i;
                }
                if( word.equals(word2) ) {
                    index2 = i;
                }
                if( index1!=-1 && index2!=-1 ) {
                    ans = Math.min(ans, Math.abs(index2-index1));
                }
            }
            return ans;
        }
    }
    
  • 相关阅读:
    phpajax高级篇
    一天学会ajax (php环境)
    php生成静态文件的方法
    MongoDB查询文档
    MongoDB删除文档
    MongoDB索引管理
    MongoDB插入文档
    MongoDB排序记录
    MongoDB 更新文档
    mongoDB 固定集合(capped collection)
  • 原文地址:https://www.cnblogs.com/Asimple/p/16319159.html
Copyright © 2020-2023  润新知