Solución

@fernando_her85
·23/3/2026TypeScript
solution.tsTypeScript
function largestNonAdjacentSum(numbers: number[]): number {
  
  if ( numbers.length === 0 )return 0;
  if ( numbers.length === 1) return numbers[0]
  
  const hasNegatives = numbers.some(n => n < 0);
  if (hasNegatives) return 0;
  
  let maxSum = 0;
  let currentSum = 0;

  for(let i = 0; i < numbers.length; i ++ ){ 
    const newMax = Math.max(maxSum, currentSum + numbers[i]);
    currentSum = maxSum;
    maxSum = newMax
  }


  return maxSum
}

// No modificar: necesario para evaluar el resultado.
export { largestNonAdjacentSum };
2respuestas
Respuestas
2
JL
@juanluisabreu_4c541ef629/3/2026

Buenas noches, profesor, creo que el algoritmo que propuso como solución presenta un inconveniente. En la solución propuesta usted indica que si hay al menos un número negativo el resultado es 0, pero el ejercicio solo plantea ese resultado cuando todos los números son negativos.

@fernando_her85Autor30/3/2026

Si, tienes razón, me fui muy al extremo, leí que si eran negativo no valía la pena seleccionar nada. pero es si TODOs son negativos... tengo que arreglar mi solución efectivamente.

Escribir un comentario

Recuerda ser amable. Estás comentando la solución de otra persona. Comparte tu perspectiva de forma constructiva y respetuosa.

Debes iniciar sesión para publicar un comentario.
Markdown