1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// @Title: 两个列表的最小索引总和 (Minimum Index Sum of Two Lists)
// @Author: 15816537946@163.com
// @Date: 2022-03-14 23:28:01
// @Runtime: 28 ms
// @Memory: 7 MB
func findRestaurant(list1 []string, list2 []string) []string {
    if len(list2) > len(list1) {
        list1, list2 = list2, list1
    }
    r := make(map[string]int)
    for i := range list1 {
        r[list1[i]] = i
    }
    
    min := 2002
    var ret []string

    for i := range list2 {
        //fmt.Println(min)
        if idx, ok := r[list2[i]];ok {
            if idx+i < min {
                min = idx+i
                ret = []string{list2[i]}
                fmt.Println(ret)
            } else if  idx+i == min {
                ret = append(ret, list2[i])
            }
        }
    }
    return ret
}