Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

180
Vistas
Encuentre los índices de un par de elementos consecutivos de una matriz determinada cuya suma sea igual a un número de destino específico, si no se encuentra ningún par, devuelva {-1, -1]

Estoy escribiendo una función JavaScript sumPair(numbers, target) para encontrar los índices de un par de elementos consecutivos de una matriz dada cuya suma es igual a un número objetivo específico. La función debe devolver una matriz de los índices del par de elementos consecutivos o la matriz [-1, -1] si no se encuentra un par. Mi función funciona si no necesito devolver [-1, -1] cuando no se encuentra ningún par, pero devuelve [-1, -1] incluso si hay un par.

 var sumPair = function(nums, target) { for (let i = 0; i < nums.length; i++) { for (let j = i + 1; j < nums.length; j++) { if (nums[i] + nums[j] == target) { return [i, j] } else if (nums[i] + nums[j] !== target) { return [-1, -1] } } } }; document.write(sumPair([10, 20, 10, 40, 50, 60, 70, 30], 50));

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

El problema principal es que su declaración else if no está dentro del ciclo, sin embargo, si la coloca en el ciclo, devolverá falso en el primer falso que obtenga, en lugar de recorrer todo el conjunto.

En su lugar, devuelva el caso base y, si hay una coincidencia, devolverá la coincidencia antes de que se active el caso base.

 <!DOCTYPE html> <html> <head> </head> <body> <script type="text/javascript"> var sumPair = function(nums, target) { for(let i = 0; i < nums.length; i++){ for(let j = i+1; j < nums.length; j++){ if(nums[i] + nums[j] == target){ return ([i, j]) } } } return([-1,-1]) }; document.write(sumPair([10,20,10,40,50,60,70,30],50)); </script> </script> </body> </html>
about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede omitir el segundo bucle for y solo verificar i+1

 var sumPair = function(nums, target) { for (let i = 0; i < nums.length - 1; i++) { if(nums[i] + nums[i+1] == target) { return [nums[i], nums[i+1]] } } return [-1,-1] };
about 4 years ago · Juan Pablo Isaza Denunciar

0

Esta respuesta contiene dos soluciones, una para buscar los dos primeros índices de índices consecutivos (¡literalmente!) y otra de dos índices cuya suma de valores es el valor buscado.

  1. Búsqueda de índices consecutivos.

    Simplemente itere desde el índice 1 hasta que sea más pequeño que la longitud de la matriz. Compruebe la suma del artículo anterior y el artículo real. devolver sus índices.

     const sumPair = (nums, target) => { for (let i = 1; i < nums.length; i++) { if (nums[i - 1] + nums[i] === target) return [i - 1, i]; } return [-1, -1]; }; console.log(sumPair([10, 20, 10, 40, 50, 60, 70, 30], 50));

  2. Busque algunos índices más pequeños.

    Comience a iterar desde cero y almacene el primer índice encontrado en un objeto y verifique si la suma es true .

     const sumPair = (nums, target) => { const indices = {}; for (let i = 0; i < nums.length; i++) { if (nums[i] in indices) return [indices[nums[i]], i]; indices[target - nums[i]] ??= i; } return [-1, -1]; }; console.log(sumPair([10, 20, 10, 40, 50, 60, 70, 30], 50));

about 4 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 Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda