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

166
Vistas
Cómo sumar todas las combinaciones de números en una matriz

Estoy tomando una matriz de números [4, 6, 23, 10, 1, 3] Necesito devolver true si alguna combinación de números en la matriz se suma al número más grande de la matriz. Entonces, el ejemplo anterior debería ser true porque 3 + 4 + 6 + 10 = 23

Mi pensamiento detrás de este problema es que primero debería poner la matriz en orden numérico y luego hacer una nueva matriz solo con los números que estoy agregando porque no estoy agregando el número más grande. Entonces necesito algún método que diga "Si cualquier combinación de sumar estos números es igual al número más grande en la matriz original, devuelve verdadero". Este es el código que he escrito hasta ahora, pero estoy atascado en el bucle for. ¡Cualquier ayuda sería muy apreciada!

 function ArrayChallenge(arr){ let order = arr.sort(function(a, b){return ab}) let addThese = order.slice(0,order.length-1) for(i = 0; i < addThese.length-1; i++){ return true } } console.log(ArrayChallenge([3,5,-1,8,12]))
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Parece una pregunta trampa. Aquí está la respuesta:

 function ArrayChallenge(arr){ return true }

Porque la suma del número más grande siempre es igual al número más grande.


Si esta solución no está permitida de alguna manera, vea el problema de la suma de subconjuntos :

hay un conjunto múltiple S de números enteros y una suma objetivo T, y la cuestión es decidir si algún subconjunto de números enteros suma precisamente T.

La solución más sencilla a ese problema es con recursividad; algo como esto:

 function subsetSum(arr, sum) { if (arr.length == 0) { // No numbers left in the array. The only sum we can make is 0. // If that is the sum we are seeking, great! return sum == 0 } else { // We will try both using and not using the first number in the array. // The rest is passed to the recursive call. const [current, ...remaining] = arr return ( // Exclude current number, and recurse. We have to make the full // sum with the remaining numbers. subsetSum(remaining, sum) || // Include current number, meaning we have sum - current left // to make with the remaining numbers. subsetSum(remaining, sum - current) ) } }
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