[leetcode]599. Minimum Index Sum of Two Lists
哈希表应用比较典型
public String[] findRestaurant(String[] list1, String[] list2) { //哈希表存字符串和对应下标 Map<String,Integer> map = new HashMap<>(); List<String> res = new ArrayList<>(); int min = Integer.MAX_VALUE; for (int i = 0; i < list1.length; i++) { map.put(list1[i],i); } //不断更新结果 for (int i = 0; i < list2.length; i++) { String str = list2[i]; if (map.containsKey(str)) { if (i+map.get(str)<min) { res.clear(); res.add(str); min = i+map.get(str); } else if (i+map.get(str)==min) res.add(str); } } String[] s = new String[res.size()]; for (int i = 0; i < res.size(); i++) { s[i] = res.get(i); } return s; }