599.minimum-index-sum-of-two-lists.go 390 B

12345678910111213141516171819
  1. func findRestaurant(list1 []string, list2 []string) []string {
  2. res := make([]string, 0)
  3. min := len(list1) + len(list2)
  4. m := make(map[string]int)
  5. for i, s := range list1 {
  6. m[s] = i
  7. }
  8. for i, s := range list2 {
  9. if val, ok := m[s]; ok {
  10. if sum := val + i; sum < min {
  11. min = sum
  12. res = []string{s}
  13. } else if sum == min {
  14. res = append(res, s)
  15. }
  16. }
  17. }
  18. return res
  19. }