讨论/《哈希表》 - 两个列表的最小索引总和/
《哈希表》 - 两个列表的最小索引总和
共 1 个回复

Python3

class Solution:
    def findRestaurant(self, list1: List[str], list2: List[str]) -> List[str]:
        """
        思路:1. 理解题意: 找「最小索引和」的「共同值」
             2. 记录一个最小索引值——用于判断当前的共同值是否为最小索引和
             3. 如果共同值的最小索引和更小——则清空集合然后追加
                如果共同值的最小索引和相等——则在集合直接追加
        方法:哈希映射
        """
        map_data = {}
        for i in range(len(list1)):
            map_data[list1[i]] = i
        list_data = list()
        min_sum = 10000
        for j in range(len(list2)):
            if list2[j] in map_data:
                sum = j + map_data[list2[j]]
                if sum < min_sum:
                    min_sum = sum
                    list_data.clear()
                    list_data.append(list2[j])
                elif sum == min_sum:
                    list_data.append(list2[j])
        return list_data