/** * // [1,1,1,2,2,3,3,3,3,3,3,4,4,5,5,6] * // [1,1,1,1,1,1,1,2,2,2,2,2,2,3,3] */ public class MostFrequentElementInArray { public static void main(String[] args) { int[] a = {1, 2}; System.out.println(mostFrequent(a)); } public static int mostFrequent(int[] array) { if (array == null || array.length == 0) throw new IllegalArgumentException(); int max = 1; int res = array[0]; for (int i = 0; i < array.length - max; i++) { int start = i; if (array[start] != array[start + max]) { int end = start + max; while (array[end] == array[end - 1]) { end--; } i = end - 1; continue; } while (i < array.length - max && array[i] == array[i + 1]) { i++; } int length = i - start + 1; if (length > max) { max = length; res = array[start]; } } return res; } }