Ejemplos, Suma máxima en subarreglo
☆ Algoritmo para encontrar la suma máxima en un subarreglo
Dado un arreglo de enteros y un número, escribe una función llamada maximaSumaEnSubarreglo, la cual encuentre la suma máxima en un subarreglo con la longitud del número enviado a la función.
El arreglo debe consistir de números consecutivos de elementos en el arreglo original.
Ejemplos:
([100,200,300,400],2) => 700
([-3,4,0,-2,6,-1],2) => 5
([2,3],3) => null
function sumaMaximaEnSubarreglo(a, b) {
// retorna false si el arreglo es menor a lo requerido
if(a.length < b) {
return null;
}
// suma maxima
let sumaMaxima = 0;
// toma la suma de la primera porción del arreglo
for(let i = 0 ; i < b ; i++){
sumaMaxima += a[i];
}
// suma previa
let sumaPrevia = sumaMaxima;
// recorre el resto del arreglo
for(let i = b ; i < a.length ; i++) {
// calcula la nueva suma
let nuevaSuma = sumaPrevia + a[i] - a[i - b];
// actualiza la suma maxima
if(nuevaSuma > sumaMaxima){
sumaMaxima = nuevaSuma;
}
// actualiza la suma previa
sumaPrevia = nuevaSuma
}
// retorna la suma máxima
return sumaMaxima;
}