Introducción
En este laboratorio, exploraremos la programación de JavaScript al completar una serie de ejercicios diseñados para ayudar a desarrollar habilidades fundamentales. Desde la sintaxis básica y los tipos de datos hasta conceptos más avanzados como la programación asincrónica y la programación funcional, este laboratorio proporcionará experiencia práctica que te ayudará a convertirse en un desarrollador de JavaScript habilidoso. Ya sea que seas nuevo en la programación o estés buscando ampliar tus habilidades, este laboratorio te dará las herramientas que necesitas para tener éxito.
Algoritmo del subarreglo máximo
Para practicar la codificación, abre la Terminal/SSH y escribe node. Este algoritmo encuentra un subarreglo contiguo con la suma más grande dentro de un arreglo de números. Para implementar este algoritmo, sigue estos pasos:
- Utiliza un enfoque voraz para llevar un registro de la suma actual y el máximo actual,
maxSum. EstablecemaxSumen-Infinitypara asegurar que se retorne el valor negativo más alto, si todos los valores son negativos. - Define variables para llevar un registro del índice de inicio máximo,
sMax, índice de fin máximo,eMaxe índice de inicio actual,s. - Utiliza
Array.prototype.forEach()para iterar sobre los valores y agrega el valor actual a lasum. - Si la
sumactual es mayor quemaxSum, actualiza los valores de los índices y lamaxSum. - Si la
sumes menor que0, reiníciala en0y actualiza el valor desal siguiente índice. - Utiliza
Array.prototype.slice()para retornar el subarreglo indicado por las variables de índice.
Aquí está el código JavaScript del algoritmo:
const maxSubarray = (...arr) => {
let maxSum = -Infinity,
sum = 0;
let sMax = 0,
eMax = arr.length - 1,
s = 0;
arr.forEach((n, i) => {
sum += n;
if (maxSum < sum) {
maxSum = sum;
sMax = s;
eMax = i;
}
if (sum < 0) {
sum = 0;
s = i + 1;
}
});
return arr.slice(sMax, eMax + 1);
};
Aquí está un ejemplo de cómo utilizar la función:
maxSubarray(-2, 1, -3, 4, -1, 2, 1, -5, 4); // [4, -1, 2, 1]
Resumen
¡Felicitaciones! Has completado el laboratorio del subarreglo máximo. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.