Advertisement
Guest User

Untitled

a guest
Nov 12th, 2019
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.95 KB | None | 0 0
  1. class Solution {
  2.     public int minIncrementForUnique(int[] A) {
  3.         Map<Integer, Integer> map = new HashMap<>();
  4.         Set<Integer> visited = new HashSet<>();
  5.         PriorityQueue<Integer> queue = new PriorityQueue<>((a,b)->(a-b));
  6.         int i;
  7.         for (i=0;i<A.length;i++)
  8.         {
  9.             map.put(A[i], map.getOrDefault(A[i],0)+1);
  10.             visited.add(A[i]);
  11.         }
  12.         queue.addAll(visited);
  13.         int count=0;
  14.         while(!queue.isEmpty())
  15.         {
  16.             int key = queue.poll();
  17.             int temp = key;
  18.             int n = map.get(temp);
  19.             if (n==1)
  20.                 continue;
  21.             for (i=n-1;i>=1;i--)
  22.             {
  23.                 count+=i;
  24.                 temp++;
  25.                 if (!visited.contains(temp))
  26.                 {
  27.                     visited.add(temp);
  28.                     queue.add(temp);
  29.                 }
  30.                 map.put(temp, map.getOrDefault(temp,0)+1);
  31.             }
  32.         }
  33.         return count;
  34.     }
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement