文章目录
- 🔴力扣原题:
- 🟠题目简述:
- 🟡解题思路:
- 🟢C++代码:
- 🔵结果展示:
🔴力扣原题:
面试题 17.11. 单词距离
🟠题目简述:
有个内含单词的超大文本文件,给定任意两个不同的单词,找出在这个文件中这两个单词的最短距离(相隔单词数)。如果寻找过程在这个文件中会重复多次,而每次寻找的单词不同,你能对此优化吗?
🟡解题思路:
- 一次遍历;
- 每次计算差值,取最小差值;
- over;
🟢C++代码:
class Solution {
public:
int findClosest(vector<string>& words, string word1, string word2) {
int ans = INT_MAX;
int i1 = -1, i2 = -1;
int n = words.size();
for(int i = 0; i < n; i++)
{
if(words[i] == word1)
{
i1 = i;
}else if (words[i] == word2)
{
i2 = i;
}
if(i1 != -1 && i2 != -1)
{
ans = min(ans,abs(i2 - i1));
}
}
return ans;
}
};
🔵结果展示: