LeetCode #243. Shortest Word Distance
阿新 • • 發佈:2020-12-01
題目
解題方法
設定三個變數word1的當前索引 word1ind = -len(words)、word2的當前索引 word2ind = len(words)、最小距離distance = len(words),遍歷陣列,當遇到word1或word2時更新其當前索引,並更新distance = min(distance, abs(word1ind - word2ind)),否則如果不是word1或word2,pass。最後返回distance。
時間複雜度:O(n)
空間複雜度:O(1)
程式碼
class Solution: def shortestDistance(self, words: List[str], word1: str, word2: str) -> int: word1ind = -len(words) word2ind = len(words) distance = len(words) for i in range(len(words)): if words[i] == word1: word1ind = i distance = min(distance, abs(word1ind - word2ind)) elif words[i] == word2: word2ind = i distance = min(distance, abs(word1ind - word2ind)) else: pass return distance