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

162
Visualizações
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 Respostas
Responde à pergunta

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