方法一:哈希表 class Solution { public String[] findRestaurant(String[] list1, String[] list2) { Map<String, Integer> index = new HashMap<String, Integer>(); for (int i = 0; i < list1.length; i++) { index.put(list1[i], i); } int maxSum = Integer.MAX_VALUE; List<String> ret = new ArrayList<String>(); // 建立String列表,方便清空和增加 for (int i = 0; i < list2.length; i++) { if (index.containsKey(list2[i])) { int j = index.get(list2[i]); if (i + j < maxSum) { ret.clear(); ret.add(list2[i]); maxSum = i + j; }else if(i + j == maxSum){ ret.add(list2[i]); } } } return ret.toArray(new String[ret.size()]); // 要返回String数组 } }