Solución a Leetcode Maximum Subarray JS 53 con el algoritmo de Kadane. A continuación te dejo la implementación en JavaScript y una explicación clara paso a paso.
let maxSubArray=function(nums) {
let maxSum=nums[0]
let currentSum=nums[0]
for(let i=1;i<nums.length;i++){
currentSum=Math.max(currentSum+nums[i],nums[i])
maxSum=Math.max(currentSum,maxSum)
}
return maxSum
};
Explicación del código Algoritmo de Kadane. El objetivo es encontrar la suma máxima de un subarreglo contiguo, es decir, una secuencia de números adyacentes dentro del array. Recorremos el array acumulando la mejor suma hasta cada índice y reiniciando cuando conviene empezar desde el elemento actual.
Ejemplo con el caso [-2,1,-3,4,-1,2,1,-5,4]:
Paso 1: inicializa currentSum=-2 y maxSum=-2. Luego currentSum=Math.max(-2+1,1)=1 y maxSum=Math.max(1,-2)=1.
Paso 2: currentSum=1. Calcula currentSum=Math.max(1+(-3),-3)=-2 y maxSum=Math.max(-2,1)=1.
Paso 3: currentSum=-2. Calcula currentSum=Math.max(-2+4,4)=4 y maxSum=Math.max(4,1)=4.
Paso 4: currentSum=4. Calcula currentSum=Math.max(4+(-1),-1)=3 y maxSum=Math.max(3,4)=4.
Paso 5: currentSum=3. Calcula currentSum=Math.max(3+2,2)=5 y maxSum=Math.max(5,4)=5.
Paso 6: currentSum=5. Calcula currentSum=Math.max(5+1,1)=6 y maxSum=Math.max(6,5)=6.
Paso 7: currentSum=6. Calcula currentSum=Math.max(6+(-5),-5)=1 y maxSum=Math.max(1,6)=6.
Paso 8: currentSum=1. Calcula currentSum=Math.max(1+4,4)=5 y maxSum=Math.max(5,6)=6. Resultado final 6.
Complejidad: tiempo O(n) y espacio O(1). Ideal para entrevistas técnicas y para optimizar componentes que analizan secuencias en tiempo real.
En Q2BSTUDIO desarrollamos soluciones de alto rendimiento y calidad para productos y plataformas críticas. Somos una empresa de desarrollo con foco en aplicaciones a medida y software a medida, especialistas en inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio y power bi, además de ia para empresas y agentes IA. Si necesitas un equipo que convierta algoritmos como Kadane en valor para tu negocio, descubre nuestro servicio de software a medida.
También impulsamos casos de uso avanzados con aprendizaje automático y automatización inteligente. Conoce cómo aplicamos modelos, copilotos y orquestación de agentes en procesos reales en nuestra página de inteligencia artificial.
Si te resultó útil o tienes otra forma de razonar este problema, deja tu comentario y compartecómo lo abordarías. Nos encantará leerte.