Algoritmo para encontrar el subarreglo mas pequeño que al sumarse sea igual o mayor que un valor provisto
Escribir una función llamada sumaMinimaSubarreglo la cual acepte dos parámetros.
- Un arreglo de valores positivos enteros.
- Un entero positivo.
La función debe retornar la longitud mínima de valores continuos de un subarreglo en el cual la suma sea mayor o igual al segundo parámetro enviado.
Ejemplo…
sumaMinimaSubarreglo([2,1,6,5,4], 9) => 2 [5,4]
function sumaMinimaSubarreglo(a, b) {
let suma = 0;
let minimo = Infinity;
let i = 0;
let j = 0;
while (i < a.length) {
if (suma < b && j < a.length) {
suma += a[j++];
} else if (suma >= b) {
minimo = Math.min(minimo, j - i);
suma -= a[i++];
} else {
break;
}
}
return minimo === Infinity ? 0 : minimo;
}