思路大体同面试题16.06:https://blog.csdn.net/qq_40467670/article/details/125605526?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22125605526%22%2C%22source%22%3A%22qq_40467670%22%7D&ctrtid=00js3
题目链接:https://leetcode.cn/problems/find-closest-lcci/
题目如下:
class Solution {
public:
int findClosest(vector<string>& words, string word1, string word2) {
//双指针,先搜出来每个单词在数组中出现的所有位置,然后进行计算
vector<int> a1;
vector<int> a2;
for(int i=0;i<words.size();i++){
if(words[i]==word1) a1.push_back(i);
if(words[i]==word2) a2.push_back(i);
}
//此时思路同 面试题16.06
int res=INT_MAX,i=0,j=0;
int m=a1.size(),n=a2.size();
while(i<m&&j<n){
res=min(res,abs(a1[i]-a2[j]));
if(a1[i]<a2[j]) i++;
else j++;
}
return res;
}
};