LeetCode 599 两个列表的最小索引总和[map] HERODING的LeetCode之路

Posted HERODING23

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 599 两个列表的最小索引总和[map] HERODING的LeetCode之路相关的知识,希望对你有一定的参考价值。

解题思路:
一道非常简单的map应用题目,用一个map存储其中一个list的所有餐厅名称和其序号,因为最后反悔哦结果中的餐厅肯定在该map中,所以只用一个map,接着遍历另一个list,一旦找到餐厅在map中,就计算其索引和,如果最小,更新最小值并将数组重置,如果和最小值相同,放入数组后面即可,代码如下:

class Solution 
public:
    vector<string> findRestaurant(vector<string>& list1, vector<string>& list2) 
        vector<string> ans;
        unordered_map<string, int> mp;
        for(int i = 0; i < list1.size(); i ++) 
            mp[list1[i]] = i; 
        
        int love = INT_MAX;
        for(int i = 0; i < list2.size(); i ++) 
            if(mp.count(list2[i]) > 0) 
                int cur = i + mp[list2[i]];
                if(cur < love) 
                    ans.clear();
                    love = cur;
                    ans.push_back(list2[i]);
                 else if(cur == love) 
                    ans.push_back(list2[i]);
                
            
        
        return ans;
    
;

以上是关于LeetCode 599 两个列表的最小索引总和[map] HERODING的LeetCode之路的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 599 两个列表的最小索引总和[map] HERODING的LeetCode之路

LeetCode 393. UTF-8 编码验证 / 599. 两个列表的最小索引总和 / 2044. 统计按位或能得到最大值的子集数目

599. 两个列表的最小索引总和C++

599. 两个列表的最小索引总和C++

「 每日一练,快乐水题 」599. 两个列表的最小索引总和

「 每日一练,快乐水题 」599. 两个列表的最小索引总和