hash表即可:
class Solution {
public:
vector<string> findRestaurant(vector<string>& list1, vector<string>& list2) {
vector<string> ans;
unordered_map<string,int> table;
for(int i=0;i<list1.size();i++)
{
if(table.find(list1[i])==table.end())
table[list1[i]]=i;
} //add every element into the hash table
int min_des=INT_MAX;
for(int i=0;i<list2.size();i++)
{
if(table.find(list2[i])!=table.end())
{
table[list2[i]]+=i;
min_des=min(min_des,table[list2[i]]);
}
}
for(int i=0;i<list2.size();i++)
{
if(table.find(list2[i])!=table.end())
{
if(table[list2[i]]==min_des)
ans.push_back(list2[i]);
}
}
return ans;
}
int min(int a,int b)
{
return a<b?a:b;
}
};