题目:
假设 Andy 和 Doris 想在晚餐时选择一家餐厅,并且他们都有一个表示最喜爱餐厅的列表,每个餐厅的名字用字符串表示。
你需要帮助他们用最少的索引和找出他们共同喜爱的餐厅。 如果答案不止一个,则输出所有答案并且不考虑顺序。 你可以假设答案总是存在。
算法:
方法一:hash表
func findRestaurant(list1 []string, list2 []string) []string {
ans := make([]string, 0)
list1Map := make(map[string]int)
for i := range list1 {
list1Map[list1[i]] = i
}
minIndexSum := math.MaxInt64
for j := range list2 {
if list1Index, ok := list1Map[list2[j]]; ok {
if list1Index + j < minIndexSum {
minIndexSum = list1Index + j
ans = []string{list2[j]}
} else if list1Index + j == minIndexSum {
ans = append(ans, list2[j])
}
}
}
return ans
}