文章作者:Tyan
博客:noahsnail.com | 优快云 | 简书
1. Description

2. Solution
class Solution {
public:
vector<string> findRestaurant(vector<string>& list1, vector<string>& list2) {
int min = INT_MAX;
vector<string> result;
unordered_map<string, int> m;
for(int i = 0; i < list1.size(); i++) {
m[list1[i]] = i;
}
for(int i = 0; i < list2.size(); i++) {
if(m.find(list2[i]) != m.end()) {
int index = m[list2[i]] + i;
if(index < min) {
min = m[list2[i]] + i;
result.clear();
result.emplace_back(list2[i]);
}
else if(index == min) {
result.emplace_back(list2[i]);
}
}
}
return result;
}
};
本文介绍了一种解决LeetCode上Minimum Index Sum of Two Lists问题的有效算法。通过使用哈希表存储第一个列表的字符串及其索引,然后遍历第二个列表查找公共元素,计算并记录它们的索引和,最终找到索引和最小的餐厅名称。这种方法避免了直接比较两个列表的所有元素,大大提高了效率。
391

被折叠的 条评论
为什么被折叠?



