• Leetcode: 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的位置之差,所以我们只要每次得到一个新位置和另一个单词的位置比较一下就行了。

     1 public class Solution {
     2     public int shortestDistance(String[] words, String word1, String word2) {
     3         int i=-1, j=-1;
     4         int min = Integer.MAX_VALUE;
     5         for (int k=0; k<words.length; k++) {
     6             if (!words[k].equals(word1) && !words[k].equals(word2)) continue;
     7             else if (words[k].equals(word1)) {
     8                 i = k;
     9             }
    10             else if (words[k].equals(word2)) {
    11                 j = k;
    12             }
    13             if (i!=-1 && j!=-1) {
    14                 min = Math.min(min, Math.abs(j-i));
    15             }
    16         }
    17         return min;
    18     }
    19 }
  • 相关阅读:
    webService 部署以后参数输入框不能显示
    c# 发送邮件功能
    Linux上的free命令详解
    curl 命令详解
    查看mysql的root密码
    [shell]find用法小结
    ArrayList Vector LinkedList 区别与用法
    SecureCRT编码转换vim
    HashMap和Hashtable的区别
    Java中ArrayList和 LinkedList区别
  • 原文地址:https://www.cnblogs.com/EdwardLiu/p/5062349.html
Copyright © 2020-2023  润新知