показать все возможные множества sets из списка array
как получить все возможные комбинации, в которых значения не повторяются, при том что в комбинации сохраняются все элементы первоначального списка на Java
input:
Set [1,2,3,4,5]
ArrayList {1,1,2,2,3,3,4,5}
output:
1-{1,2,3,4,5} {1,2,3}
2-{1,2,3,4} {1,2,3,5}
3-{1,2} {1,2,3,4,5} {3}
4-{1} {1,2,3,4,5} {2,3}
5-{1} {1,2,3,4,5} {2} {3}
6-{1,2} {1,2} {3,5} {3,6}
7-{1,2,3} {1,2,3} {5,6}
8-{1,2,3,4} {1,2} {3,5}
9-{1} {1} {2} {2} {3} {3} {4} {5}
и так далее...
Ответы (1 шт):
Автор решения: MBo
→ Ссылка
Для каждого элемента массива на новом уровне рекурсии:
Вставить его во все наборы, в которые возможно, а также образовать новый набор с единственным элементом.
в которые возможно может быть удобно осуществить не проверкой, а хранением для каждого значения номера последнего набора, в который вставлено это значение.