Я пытаюсь определить, сколько различных способов я могу удалить группу значений из последовательности, оставив исходную последовательность в порядке (стабильной) и убедившись, что удаляет только одно значение экземпляра каждый из исходной последовательности. Например, если бы я
[1,2,1,3,1,4,4]
, и я хочу удалить [1,4,4]
мои результирующие комбинации:
[1,2,1,3,1,4,4] \ [1,4,4] = [ [2,1,3,1], [1,2,3,1], [1,2,1,3] ]
или
[1,2,1,3,1,4,4] \ [1,1] = [ [2,3,1,4,4], [1,2,3,4,4], [2,1,3,4,4] ]
У меня есть код javascript, который я написал для создания комбинаций всех значений массива без удаления, и часть удаления кажется, что это должно быть легко, но я не вижу алгоритма, когда вам нужно потенциально удалять несколько значений несколько раз.