244_Shortest Word Distance II

244. Shortest Word Distance II

Level: medium

Tag: array, design

Question

This is a follow up of Shortest Word Distance.

Design a class which receives a list of words in the constructor, 
and implements a method that takes two words word1 and word2 
and return the shortest distance between these two words in the list.

Note:
You may assume that word1 does not equal to word2, and word1 and word2 are both in the list.

Example1

Input: words = ["practice", "makes", "perfect", "coding", "makes"]
       word1 = “coding”
       word2 = “practice”
Output: 3

Idea (greedy)

Use a dictionary to store the positions for all the unique words. Given word1 and word2, find their positions, and compute the smallest distance.

Complexity 2

  • Time:O(n+m)O(n+m) where nn is the length of the array, mm is the maximum of the number of word1 and word2.

  • Space:O(n)O(n)

Solution 2

Last updated

Was this helpful?