E-599. Minimum Index Sum of Two Lists

# O(M+N), O(M) or O(M*x) x是字符串平均长度
import collections
class Solution:
    def findRestaurant(self, list1: List[str], list2: List[str]) -> List[str]:
        
        a_map = {v:i for i,v in enumerate(list1)}

        res = []
        min_sum = float('inf')
        for i, rest in enumerate(list2):
            if rest in a_map:
                if i + a_map[rest] < min_sum:
                    min_sum = i + a_map[rest]
                    res = [rest]
                elif i + a_map[rest] == min_sum:
                    res.append(rest)
        
        return res

Last updated

Was this helpful?