import java.util.Arrays;
public class ShortestRunProgram {
public static int[] shortest_identical_consecutive_subarray(int[] arr) {
if (arr.length == 0) return new int[0];
int bestStart = 0;
int bestLen = arr.length;
int currentStart = 0;
int currentLen = 1;
for (int i = 1; i < arr.length; i++) {
if (arr[i] == arr[i - 1]) {
currentLen++;
} else {
if (currentLen < bestLen) {
bestLen = currentLen;
bestStart = currentStart;
}
currentStart = i;
currentLen = 1;
}
}
if (currentLen < bestLen) {
bestLen = currentLen;
bestStart = currentStart;
}
int[] result = new int[bestLen];
System.arraycopy(arr, bestStart, result, 0, bestLen);
return result;
}
// ------------------------------------------------------------
// MAIN PROGRAM
// ------------------------------------------------------------
public static void main(String[] args) {
int[] arr = {3,3,3, 7,7,7,7,7, 2,2, 5,5,5,5, 9,9,9,9,9,9};
int[] resultArr = shortest_identical_consecutive_subarray(arr);
System.out.print("Array result: ");
for (int x : resultArr) System.out.print(x + " ");
}
}
/*
run:
Array result: 2 2
*/