Sparse Arrays

  • + 0 comments

    Java using a map to save the frequencies. This solution iterates each list only once.

        public static List<Integer> matchingStrings(List<String> strings, List<String> queries) {
        // Write your code here
            HashMap<String, Integer> stringsMap = new HashMap<>();
            for(String string : strings){
                if(stringsMap.containsKey(string)){
                    stringsMap.put(string, stringsMap.get(string) + 1);
                }else{
                    stringsMap.put(string, 1);
                }
            }
            
            ArrayList<Integer> results = new ArrayList<>(queries.size());
            for(String query: queries){
                Integer frequency = stringsMap.get(query);
                results.add(frequency == null ? 0 : frequency);
            }
            return results;
        }