Aqui eu escrevi um programa que encontrará todos os arrays de subconjuntos, como se o array fosse [1, 2, 3]
, e quero uma saída como[[], 2],, 2, , [2, 1], 3, , [3, 1], [3, 2], [3
Eu escrevi um programa que representa a representação lógica binária. A saída não está vindo como esperado.
Você pode retificar e modificar esse programa?
const getAllSubsets = arr => {
let n = arr.length
let add = []
for (let i = 0; i < (1 << n); i++) {
for (let j = 0; j < n; j++) {
if ((1 << j) & i) {
add.push([arr[j]])
}
}
}
return add
}
console.log(getAllSubsets([1,2,3]))
Você precisa de duas matrizes de armazenamento: uma para todos os subconjuntos e outra para o atual. O esquema geral do seu código seria assim:
Boa sorte!
Você estava bem perto! Você acabou de colocar algumas coisas no lugar errado. Aqui estão as correções:
allSubsets
. Será uma série de subconjuntos. Observação:allSubsets.push(subset)
subset
subset.push(arr[j])
.Você poderia adotar uma abordagem recursiva e obter matrizes com indefinido mais descanso e o valor mais resto.