代码语言:javascript复制最少的索引和找出他们共同喜爱的餐厅。 如果答案不止一个,则输出所有答案并且不考虑顺序。 你可以假设总是存在一个答案。 输入: ["Shogun", "Tapioca Express", "Burger King", "KFC"] ["Piatti", "The Grill at Torrey Pines", "Hungry Hunter Steakhouse", "Shogun"] 输出: ["Shogun"] 解释: 他们唯一共同喜爱的餐厅是“Shogun”。 示例 2: 输入: ["Shogun", "Tapioca Express", "Burger King", "KFC"] ["KFC", "Shogun", "Burger King"] 输出: ["Shogun"] 解释: 他们共同喜爱且具有最小索引和的餐厅是“Shogun”,它有最小的索引和1(0 1)。
class Solution {
public String[] findRestaurant(String[] list1, String[] list2) {
//使用哈希表
//先找到都喜欢的
HashMap<Integer,List<String> > map=new HashMap(); //当前索引之和, 共同的字符串
for(int i=0;i<list1.length;i ){
for(int j=0;j<list2.length;j ){
if(list1[i].equals(list2[j])){
//如果他两个一样, 而且map里面没有 就放进去
if(!map.containsKey((i j))){
map.put(i j,new ArrayList<String>());
}
map.get(i j).add(list1[i]);
}
}
}
//找出最小的key
int min=Integer.MAX_VALUE;
for(int key: map.keySet()){
min=Math.min(min,key);
}
String [] res=new String[map.get(min).size()];
return map.get(min).toArray(res);
}
}
有个数组的话可以 toList();
String [] str=new String[2];
有个集合的话可以toArray(str);