Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

109
Visualizações
Problema al devolver índices de dos números en una matriz

tengo este problema:

Dada una matriz de enteros nums y un target entero, devuelve los índices de dos números que suman el target .

Ejemplo 1:

 Input: nums = [2,7,11,15], target = 9 Output: [0,1] Output: Because nums[0] + nums[1] == 9, we return [0, 1].

Con el siguiente código, pude obtener los valores agregados en una matriz usando set y Map

Lo que necesito ayuda es devolver los indices

 const arr = [{key1: 2}, {key1: 7}, {key1: 11}, {key1: 15}]; const k = 9; const valueSet = new Set(arr.flatMap((x) => Object.values(x))); const valueArray = [...valueSet]; valueArray.forEach((v1, i1) => { for (let i2 = i1 + 1; i2 < valueArray.length; i2++) { if ((v1 + valueArray[i2]) === k) { // Return the indices return valueArray[i2]; } } });
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Tienes que analizar y encontrar la combinación de índices que te da la suma.

El siguiente código te ayudará

 const arr = [{ key1: 2 }, { key1: 7 }, { key1: 11 }, { key1: 15 }]; const k = 9; let valueSet = new Set(arr.flatMap((x) => Object.values(x))); let valueArray = [...valueSet]; let indices; let isFound = false; // valueArray.forEach((v1, i1) => { for (let i1 = 0; i1 < valueArray.length && !isFound; i1++) { for (let i2 = i1 + 1; i2 < valueArray.length && !isFound; i2++) { if ((valueArray[i1] + valueArray[i2]) === k) { //Return the Indices indices = [i1, i2]; isFound = true;; } } } console.log(indices);

about 4 years ago · Juan Pablo Isaza Relatório

0

La respuesta proporcionada por Nitheesh funciona bien. En cuanto a una explicación de por qué su enfoque inicial no tuvo éxito:

El uso de forEach para iterar sobre una matriz es diferente al uso de bucles for tradicionales, ya que se llama a la función de devolución de llamada para cada elemento de la matriz. El uso de return en un bucle forEach simplemente se sale de la devolución de llamada de ese elemento en particular , pero no de toda la iteración (por lo tanto, un return en un bucle forEach se comporta de manera similar a continue en un bucle for (...) .

Puedes leer más sobre esto aquí .

about 4 years ago · Juan Pablo Isaza Relatório

0

Primero necesita obtener la matriz con los valores de su matriz con claves [{key1: 2},{key1: 7},{key1: 11},{key1: 15}]; . Luego, recorre la matriz de valores y devuelve el índice si la condición (nums[i] + nums[j] == target) => (7 + 2 == 9) es verdadera.

 const arr = [{key1: 2},{key1: 7},{key1: 11},{key1: 15}]; const k = 9; nums = arr.map((o) => { return Object.values(o)[0] }) const twoSum = (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] } } } }; console.log(twoSum(nums, k))

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda