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;
}