245. Shortest Word Distance III

变体。上一题是WORD1和WORD2不同,这个是有可能相同。。

没想到什么巧办法,按部就班遍历分情况讨论。。

public class Solution 
{
    public int shortestWordDistance(String[] words, String word1, String word2) 
    {
        
        int res = words.length;
        
        int m = 0;
        int n = 0;
        boolean same = word1.equals(word2);
        boolean found = false;
        int i = 0;
        while(i < words.length)
        {
            String s = words[i];
            if (s.equals(word1) || s.equals(word2))
            {
                m = i;
                break;
            }
            i++;

        }
        i++;
        
        while(i < words.length)
        {
            String s = words[i];
            if(same)
            {
                if(s.equals(word1))
                {
                    res = Math.min(res,i-m);
                    m = i;
                }
            }
            else
            {
                if (s.equals(word1) || s.equals(word2))
                {
                    if(s.equals(words[m])) m = i;
                    else
                    {
                        res = Math.min(res,i-m);
                        m = i;
                    }
                }
            }
            i++;
        }
        
        return res;
    }
}

代码可能能压缩一下,不用写这么一大坨……

原文地址:https://www.cnblogs.com/reboot329/p/5944470.html