You are viewing a single comment's thread. Return to all comments →
Java Solution - pass all test cases
static List<Integer> freqQuery(List<List<Integer>> queries) { List<Integer> result = new ArrayList<Integer>(); Map<Integer,Integer> numbersCountMap = new HashMap<Integer,Integer>(); Map<Integer,Integer> frequencyCountMap = new HashMap<Integer,Integer>(); for(List<Integer> query:queries){ Integer operation = query.get(0); Integer data = query.get(1); switch (operation){ case 1: Integer previousCount = numbersCountMap.getOrDefault(data, 0); Integer newCount = previousCount + 1; numbersCountMap.put(data,newCount); if(frequencyCountMap.getOrDefault(previousCount, 0)>0){ frequencyCountMap.put(previousCount,frequencyCountMap.getOrDefault(previousCount, 0)-1); } frequencyCountMap.put(newCount,frequencyCountMap.getOrDefault(newCount, 0)+1); break; case 2: previousCount = numbersCountMap.getOrDefault(data, 0); newCount = previousCount - 1; if(numbersCountMap.getOrDefault(data, 0)>0){ numbersCountMap.put(data, newCount); } if(frequencyCountMap.getOrDefault(previousCount, 0)>0){ frequencyCountMap.put(previousCount,frequencyCountMap.getOrDefault(previousCount, 0)-1); } frequencyCountMap.put(newCount,frequencyCountMap.getOrDefault(newCount, 0)+1); break; case 3: if(frequencyCountMap.getOrDefault(data,0)>0 ){ result.add(1); } else{ result.add(0); } break; } } return result; }
Seems like cookies are disabled on this browser, please enable them to open this website
Frequency Queries
You are viewing a single comment's thread. Return to all comments →
Java Solution - pass all test cases