public class WS1718RekursionSame { static int same(int[] a) { if (a == null || a.length == 0) throw new RuntimeException(); return same(a, 0, 0); } static int same(int[] a, int index, int maxLength) { if (index >= a.length) return maxLength; int length = count(a, index, a[index]); if (length > maxLength) maxLength = length; return same(a, index+1, maxLength); } static int count(int[] a, int index, int elem) { if (index >= a.length || a[index] != elem) return 0; else return 1 + count(a, index + 1, elem); } public static void main(String[] args) { System.out.println(same(new int[] {2, 2, 9, 4, 4, 4, 2, 4})); System.out.println(same(new int[] {1, 2, 2, 3, 3, 2}) ); } }