Hallo! Ich bin gerade beim üben, anhand von alten Prüfungen und komme einfach zu keinem Ergebnis! Habe versucht es mir mit Beispielen zu erleichtern, aber bin nicht wirklich weit gekommen.
Mir ist klar, man muss mit runstart arbeiten. Allerdings kann ich mir den Algorithmus in keinster Weise vorstellen... Ich hoffe jemand kann mir da einen Tipp geben. 

Java:
int shortestRun(int[] a){
int minrunlength = a.length; // speichert länge hier 6 elemente. minrunlength = 6
for(int runlength = a.length; runlength >= 1; runlength--){ // runlength = 6
boolean isrun = true;
for(..?..){
for(int indexinrun = 0; isrun && indexinrun < runlength; indexinrun++){
if(a[indexinrun] != a[runstart + indexinrun]){
isrun = false;
}
}
}
if(isrun){
minrunlength = runlength;
}
}
return minrunlength;
}