• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
    • Preguntas
    • Profesores
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Pruebas Online
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

494
Vistas
encuentre el par de elementos adyacentes que tiene el producto más grande (mensaje incorrecto)

sigo recibiendo un mensaje incorrecto por favor explícame ¿qué está mal?

aquí está la pregunta de desafío: dada una matriz de números enteros, encuentre el par de elementos adyacentes que tiene el producto más grande y devuelva ese producto. Ejemplo

Para inputArray = [3, 6, -2, -5, 7, 3], la salida debe ser adjacentElementsProduct(inputArray) = 21.

7 y 3 producen el producto más grande.

aquí está mi código de respuesta:

 function adjacentElementsProduct(inputArray) { for(let i=0;i<inputArray.length;i++){ let prod =Math.max(inputArray[i]*inputArray[i+1]); } return prod; }
almost 3 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Cosas que debes corregir:

  1. Cuando el índice alcanza la longitud de inputArray , inputArray[i+1] generará un error OutOfIndex , ya que el rango de los índices va de 0 a inputArray.length - 1 , y aquí el último i tendrá el valor de inputArray.length - 1 entonces el valor de i+1 será inputArray.length y no es correcto.
  2. Debe crear una variable (considere max_res ) para guardar el resultado máximo anterior y compararlo con los nuevos resultados.
  3. Defina la variable prod antes del for loop , porque las variables que se definen primero en el loop no serán accesibles después de que finalice el loop .
  4. Defina una variable para almacenar el índice de i que hace el valor máximo, ya que la pregunta también quería el índice.

Debe cambiar su código de esta manera, para obtener el resultado correcto:

 function adjacentElementsProduct(inputArray) { let max_res = Number.NEGATIVE_INFINITY; let res_index = -1; let prod = 0; for (let i = 0; i < inputArray.length - 1; i++) { prod = Math.max(inputArray[i] * inputArray[i + 1]); if (prod > max_res){ max_res = prod; let res_index = i; } } return prod; } let inputArray = [3, 6, -2, -5, 7, 3] let prod = adjacentElementsProduct(inputArray) console.log(prod);

almost 3 years ago · Juan Pablo Isaza Denunciar

0

1) Tienes que obtener el máximo de dos números como

 sum = Math.max(sum, inputArray[i] * (inputArray[i + 1] ?? 1));

2) También debe manejar el último caso donde i + 1 no estará undefined , luego debe multiplicar por 1 . Puede usar el operador coalescente nulo

 (inputArray[i + 1] ?? 1) 

 function adjacentElementsProduct(inputArray) { let sum = 0; for (let i = 0; i < inputArray.length; i++) { sum = Math.max(sum, inputArray[i] * (inputArray[i + 1] ?? 1)); } return sum; } const inputArray = [3, 6, -2, -5, 7, 3]; console.log(adjacentElementsProduct(inputArray));

almost 3 years ago · Juan Pablo Isaza Denunciar

0

Number.MIN_SAFE_INTEGER permitirá el entero más pequeño porque necesita encontrar la suma más grande que puede incluir enteros negativos.

 function solution(inputArray) { let largestProduct = Number.MIN_SAFE_INTEGER; for (let i = 0; i < inputArray.length; i++) { if(inputArray[i] * inputArray[i + 1] > largestProduct) { largestProduct = inputArray[i] * inputArray[i + 1]; } } return largestProduct; }
almost 3 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda