Buonasera. Ho una mappa (chiave, valore) in cui dovrei trovare l'intervallo delle chiavi i cui valori sommati sono massimi (alcuni valori della mappa sono negativi). Ho provato con questo doppio ciclo ma non mi viene fuori il valore corretto seppure il codice mi pare giusto. Dove sbaglio???

int time_def1 = 0;
int time_def2 = 0;
double dev_defin = 0;


for (int i = 0; i < map_deviation.size(); i++) {
int time_1 = indici.get(i);
double somma = map_deviation.get(time_1);
for (int j = i+1; j < map_deviation.size(); j++) {
int time_2 = indici.get(j);
double somma1 = somma + map_deviation.get(time_2);
if (somma1 > somma){
dev_defin = somma1;
time_def1 = time_1;
time_def2 = time_2;
}
somma = somma1;
}
}

System.out.println(time_def1 + ", " + time_def2 + ", " + dev_defin);