Steward
分享是一種喜悅、更是一種幸福
程式語言 - LeetCode - C++ - 599. Minimum Index Sum of Two Lists
題目:

解答:
class Solution {
public:
vector<string> findRestaurant(vector<string>& list1, vector<string>& list2) {
unordered_map<string, int> mp1;
unordered_map<string, int> mp2;
for (int i = 0; i < list1.size(); ++i) {
mp1[list1[i]] = i;
}
for (int i = 0; i < list2.size(); ++i) {
mp2[list2[i]] = i;
}
int pos = INT_MAX;
for (auto& [k, v] : mp1) {
if (mp2.count(k)) {
pos = min(pos, v + mp2[k]);
}
}
vector<string> ans;
for (auto& [k, v] : mp1) {
if (mp2.count(k) && v + mp2[k] == pos) {
ans.push_back(k);
}
}
return ans;
}
};