zoukankan      html  css  js  c++  java
  • Shortest Word Distance

    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.

    双指针法:time O(N), space O(1)

    一个指针指向word1上次出现的位置,一个指针指向word2上次出现的位置。因为两个单词如果比较接近的话,肯定是相邻的word1和word2的位置之差,所以我们只要每次得到一个新位置和另一个单词的位置比较一下就行了。

    public class Solution {
        public int shortestDistance(String[] words, String word1, String word2) {
            int i=-1, j=-1;
            int min = Integer.MAX_VALUE;
            for (int k=0; k<words.length; k++) {
                if (!words[k].equals(word1) && !words[k].equals(word2)) continue;
                else if (words[k].equals(word1)) {
                    i = k;
                }
                else if (words[k].equals(word2)) {
                    j = k;
                }
                if (i!=-1 && j!=-1) {
                    min = Math.min(min, Math.abs(j-i));
                }
            }
            return min;
        }
    }
    

      

  • 相关阅读:
    springcloud-EurekaServer模块
    springcloud-消费者订单模块
    springboot配置热部署
    swagger依赖和配置类
    springcloud-支付模块构建
    jQuery基础
    JavaScript之实例
    JavaScript之DOM
    JavaScript之BOM
    JavaScript函数与对象
  • 原文地址:https://www.cnblogs.com/apanda009/p/7797155.html
Copyright © 2011-2022 走看看