public class Esercizio1 { public static int maxRunLength(int[] a) { // Prima di tutto mi occupo del caso particolare in cui a è vuoto if (a.length == 0) return 0; // max contiene la lunghezza della cora più lunga finora trovata int max = 0; // count contiene la lunghezza della corsa attuale int count = 1; // scorro tutti gli elementi dell'array, a partire da quello in posizione 1 for (int i = 1; i < a.length; i++) { // se l'elemento corrente è uguale a quello precedente, vuol dire che la corsa corrente // si sta allungando, per cui incremento la variabile count if (a[i] == a[i - 1]) count++; // altrimenti vuol dire che inizia una nuova corsa. aggiorno max se è necessario, e // resetto count al valore 1 else { if (count > max) max = count; count = 1; } } // questo serve per aggiornare max anche all'ultima iterazione del ciclo if (count > max) max = count; return max; } }