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

123
Visualizações
Agrupe los números en la matriz donde la suma es más cercana a X

Tengo un grupo de números:

const numbers = [ 4, 6, 2, 1, 5, 3, 6, 11 ]

Y me gustaría devolver estos números en grupos donde la suma sea más cercana a x. Por ejemplo, si x fuera 13, el resultado esperado sería:

 // console.log(result) [ 2, 11 ] // sum is 13 [ 3, 4, 5 ] // sum is 12 [ 1, 6, 6 ] // sum is 13

Todos los números deben ser utilizados. "Más cercano" está por debajo del número (no por encima de 13), por lo que el ejemplo anterior sería aceptable, pero si la suma fuera 14, no lo sería. Esto debería encontrar los mejores resultados (más cercano a 13) y eliminar cada número del grupo de opciones en la matriz cuando se haya agrupado.

¿Cómo abordaría esto?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

¿Qué tal algo como esto?

 const x = 13; const result = []; let numbers = [4, 6, 2, 1, 5, 3, 6, 11]; let i = numbers.length; while (--i > -1) { const length = result.length; let target = x - numbers[i]; let a = numbers.length - 1; while (target > 0) { if (numbers[--a] !== target) { if (a === -1) { a = numbers.length - 1; target--; } continue; } result[length] ??= []; result[length].push(numbers[a]); target = x - numbers[i]; for (const entry of result[length]) { target -= entry; } numbers = [...numbers.slice(0, a), ...numbers.slice(a + 1)]; a = numbers.length - 1; } if (!result[length]) { continue; } result[length].push(numbers[numbers.length - 1]); numbers = numbers.slice(0, -1); i = numbers.length; } console.log(result);

Aunque es un poco crudo.

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