Skip to content

Instantly share code, notes, and snippets.

@edgardamasceno
Created March 3, 2021 19:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save edgardamasceno/63a937a55b73909f8774eb80f6c4a4d8 to your computer and use it in GitHub Desktop.
Save edgardamasceno/63a937a55b73909f8774eb80f6c4a4d8 to your computer and use it in GitHub Desktop.
package br.com.zbra;
import java.util.*;
public class Main {
public static void main(String[] args) {
int[] arr = { 1, 1, 1, 2, 2, 3 };
System.out.println(Arrays.toString(mostFrequentElements(arr, 2)));
}
static int[] mostFrequentElements(int[] arr, int k) {
int n = arr.length;
int[] result = new int[k];
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
for (int i = 0; i < n; i++) {
map.put(arr[i], map.getOrDefault(arr[i], 0) + 1);
}
List<Map.Entry<Integer, Integer>> list = new ArrayList<Map.Entry<Integer, Integer>>(map.entrySet());
Collections.sort(list, (e1, e2) -> {
if (e1.getValue() == e2.getValue()) {
return e2.getKey() - e1.getKey();
}
return e2.getValue() - e1.getValue();
});
for (int i = 0; i < k; i++) {
result[i] = list.get(i).getKey();
}
return result;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment