class Solution {
public:
vector<string> findRestaurant(vector<string>& list1, vector<string>& list2) {
unordered_map<string,int>index;
for(int i=0;i<list1.size();i++)
{
index[list1[i]]=i;
}
vector<string> ret;
int indexsum=INT_MAX;
for(int i=0;i<list2.size();i++)
{
if(index.count(list2[i])>0)
{
int j=index[list2[i]];
//如果该索引和比最小索引和小,则清空结果,将该餐厅加入结果中,该索引和作为最小索引和
if(i+j<indexsum)
{
ret.clear();
ret.push_back(list2[i]);
indexsum=i+j;
}
//如果该索引和等于最小索引和,则直接将该餐厅加入结果中。
else if(i+j==indexsum)
{
ret.push_back(list2[i]);
}
}
}
return ret;
}
};
两个列表的最小索引总和
最新推荐文章于 2024-06-15 09:23:13 发布