599. 两个列表的最小索引总和
代码:
class Solution {
public String[] findRestaurant(String[] list1, String[] list2) {
Map<String, Integer> list = new HashMap<>();
Map<String, Integer> List1 = new HashMap<>();
int min = Integer.MAX_VALUE;
for (int i = 0; i < list1.length; i++)
{
if (!List1.containsKey(list1[i])) List1.put(list1[i], i);
}
for (int i = 0; i < list2.length; i++)
{
if (List1.containsKey(list2[i])) {
if (min > i + List1.get(list2[i])) min = i + List1.get(list2[i]);
if (!list.containsKey(list2[i])) list.put(list2[i], i + List1.get(list2[i]));
}
}
List<String> string = new ArrayList<>();
for (Map.Entry<String, Integer> node: list.entrySet())
{
if (node.getValue() == min) {
if (!string.contains(node.getKey())) string.add(node.getKey());
}
}
String[] str = new String[string.size()];
for (int i = 0; i < string.size(); i++) str[i] = string.get(i);
return str;
}
}