599. 两个列表的最小索引总和

2021-06-10 09:53:49 浏览数 (1)

最少的索引和找出他们共同喜爱的餐厅。 如果答案不止一个,则输出所有答案并且不考虑顺序。 你可以假设总是存在一个答案。 输入: ["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)。

代码语言:javascript复制
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);

0 人点赞