Leetcode 244 Solution

This article provides solution to leetcode question 244 (shortest-word-distance-ii)

https://leetcode.com/problems/shortest-word-distance-ii

Solution

class WordDistance { unordered_map<string, vector<int>> a;
public: WordDistance(vector<string> words) { for (int i = 0; i < words.size(); i++) a[words[i]].push_back(i); }
int shortest(string word1, string word2) { auto& v1 = a[word1]; auto& v2 = a[word2];
int i1 = 0; int i2 = 0;
int min_val = INT_MAX; while (i1 < v1.size() && i2 < v2.size()) { min_val = min(min_val, (int)abs(v1[i1] - v2[i2]));
if (v1[i1] > v2[i2]) i2++; else i1++; }
return min_val; } };
/** * Your WordDistance object will be instantiated and called as such: * WordDistance obj = new WordDistance(words); * int param_1 = obj.shortest(word1,word2); */