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

124
Vistas
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 Respuestas
Responde la pregunta

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 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