Я пишу Цифровой фонтан систему на C #. Часть этой системы создает мне наборы целых чисел, мне нужно найти комбинации наборов, которые могут создать мне набор из одного предмета. Какой самый быстрый способ сделать это?
Set A: 1,2,3,4,5,6
Set B: 1,2,3,4,6
Set C: 1,2,3
Set D: 5,6
Solutions:
A - B => 5
A - (C + D) => 4
Мне не нужно находить всех комбинаций, достаточно просто найти мне как можно больше уникальных чисел. Это может быть возможно использовать для создания более эффективного алгоритма.
Важный момент, который я забыл упомянуть:
Я не знаю заранее, сколько существует наборов, вместо этого я добавляю их один за другим и должен каждый раз определять, нашел ли я каждое требуемое число. Поэтому алгоритм должен быть чем-то, что можно запускать поэтапно при добавлении новых наборов.
Nb. Решения в C # получают бонусные оценки;)