[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;
    }

 

posted @ 2018-02-13 11:07  stAr_1  阅读(79)  评论(0编辑  收藏  举报