Slexy.org is shutting down and stopped accepting new Pastes on May 4th, 2021.
Existing Pastes will stop being available on or after May 10th, 2021.
Author: Not specified Language: java
Description: Not specified Timestamp: 2017-07-09 17:02:03 +0000
View raw paste Reply
  1. public String[] topKFrequent(String[] combo, int k) {
  2.     // Write your solution here.
  3.     HashMap<String,Integer> myhash = SetFreqMap(combo);
  4.     PriorityQueue<Map.Entry<String, Integer>> minheap = new PriorityQueue<>(k, new Comparator<Map.Entry<String, Integer>>() {
  5.       @Override
  6.       public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
  7.         if(o1.getValue() == o2.getValue()) {
  8.           return 0;
  9.         }
  10.         else return o1.getValue() < o2.getValue() ? -1 : 1;
  11.       }
  12.     });
  13.    
  14.  
  15.         for (Map.Entry<String, Integer> i : myhash.entrySet()){
  16.             if(minheap.size() < k) {
  17.                 minheap.offer(i);
  18.             }else{
  19.                 if (i.getValue() > minheap.peek().getValue()) {
  20.                     minheap.poll();
  21.                     minheap.offer(i);
  22.                 }
  23.             }
  24.         }
  25.         return heapstring(minheap);
  26.    
  27.   }
  28.    private String[] heapstring(PriorityQueue<Map.Entry<String, Integer>> minheap ){
  29.         String[] res = new String[minheap.size()];
  30.         for(int i = res.length - 1; i >=0; i--) {
  31.             res[i] = minheap.poll().getKey();
  32.         }
  33.         return res;
  34.     }
  35.      private HashMap<String, Integer> SetFreqMap(String[] nums) {
  36.         HashMap<String, Integer> myhash = new HashMap<String, Integer>();
  37.         for(String i : nums) {
  38.             Integer temp = myhash.get(i);
  39.             if(temp == null) {
  40.                 myhash.put(i,1);
  41.             }else{
  42.                 myhash.put(i, temp + 1);
  43.             }
  44.         }
  45.         return myhash;
  46.     }
View raw paste Reply