Мне задали следующий вопрос в интервью. Хотя я ответил на это с использованием n-арного дерева, мне сказали, что это не «достаточно хорошо». Итак, мне интересно, каково оптимальное решение для этого.данный массив найти все комбинации элементов, которые дают сумму
Входной сигнал: массив целых чисел: [2, 3, 7], а сумма: 10
Выход: все комбинации элементов массива, которые складываются в сумме (например, 2 + 2 + 2 + 2 + 2, 2 + 2 + 3 + 3, 3 + 7 и т.д.)
Благодаря, Т
Подсказка: каждая комбинация, которая добавляет до 10, должна состоять либо из комбинации, которая добавляет до 8, к которой затем можно добавить 2; комбинация, которая добавляет до 7, к которой затем можно добавить 3; или комбинация, которая добавляет до 3, к которой 7 можно добавить. –
Здесь вы можете найти хороший подход http://stackoverflow.com/questions/4632322/finding-all-possible-combinations-of-numbers-to-reach-a-given-sum, который может соответствовать вашему делу. – Christos