Tengo la siguiente implementación del algoritmo de Kadane en java. Básicamente, es para encontrar la suma máxima de subcampos contiguos.algoritmo kadane en 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);
Sin embargo, esto no funciona si hay una combinación de un número negativo y positivo en una matriz, por ejemplo el siguiente:
2,3,-2,-1,10
que debe devolver un 12 como máximo. A partir de ahora, devuelve 5
¿Cuál es la pregunta aquí? ¿Has probado a depurar esto? –
¿qué valor le da en este momento? – luketorjussen
O i <= numbers.length-1 habría hecho un mejor entendimiento de la longitud. – Kunalxigxag