Ho la seguente implementazione dell'algoritmo di Kadane in java. È fondamentalmente trovare la somma massima di un sottarray contiguo.algoritmo di kadane in java
String[] numbers = string.split(",");
int max_so_far = 0;
int max_ending_here = 0;
for (int i = 0; i < numbers.length-1;i++){
max_ending_here = max_ending_here + Integer.parseInt(numbers[i]);
if (max_ending_here < 0)
max_ending_here = 0;
if (max_so_far < max_ending_here)
max_so_far = max_ending_here;
}
System.out.println(max_so_far);
Tuttavia questo non funziona se v'è una combinazione di un numero negativo e positivo in una matrice, per esempio i seguenti:
2,3,-2,-1,10
che restituisce il 12 come massimo. A partire da ora restituisce 5
Qual è la domanda qui? Hai provato a eseguire il debug di questo? –
che valore dà al momento? – luketorjussen
Oppure <= numbers.length-1 avrebbe fatto capire meglio la lunghezza. – Kunalxigxag