Как генерировать уникальные последовательности? ⇐ Python
Как генерировать уникальные последовательности?
Я пытаюсь решить 377. Сумма комбинации 4.
Выход: 7 Объяснение: Возможные способы комбинирования: (1, 1, 1, 1) (1, 1, 2) (1, 2, 1) (1, 3) (2, 1, 1) (2, 2) (3, 1) Вот мое решение:
класс Решение (объект): def комбинацияSum4(self, nums, target): """ :type nums: Список[int] :тип цели: int :rtype: целое число """ результат = [] def dfs(i, curr, итог): # печать(я) если итог == цель: result.append(curr[::]) возвращаться если total>target или i>=len(nums): возвращаться curr.append(nums) dfs(i, curr, total+nums) курр.поп() dfs(i+1,curr,итог) dfs(0,[],0) печать (результат) вернуть len(результат) Он генерирует только одно из (1,1,2),(1,2,1)(2,1,1) решений или одно из (1,3)(3,1). Я не уверен, как построить рекурсивное дерево так, чтобы были получены все решения. В общем, как думать о построении рекурсивных деревьев для разных решений, например, уникальных комбинаций (которые будут содержать только одно из перечисленных выше возможных решений), уникальных последовательностей и т. д.? Любая помощь приветствуется!
Я пытаюсь решить 377. Сумма комбинации 4.
Выход: 7 Объяснение: Возможные способы комбинирования: (1, 1, 1, 1) (1, 1, 2) (1, 2, 1) (1, 3) (2, 1, 1) (2, 2) (3, 1) Вот мое решение:
класс Решение (объект): def комбинацияSum4(self, nums, target): """ :type nums: Список[int] :тип цели: int :rtype: целое число """ результат = [] def dfs(i, curr, итог): # печать(я) если итог == цель: result.append(curr[::]) возвращаться если total>target или i>=len(nums): возвращаться curr.append(nums) dfs(i, curr, total+nums) курр.поп() dfs(i+1,curr,итог) dfs(0,[],0) печать (результат) вернуть len(результат) Он генерирует только одно из (1,1,2),(1,2,1)(2,1,1) решений или одно из (1,3)(3,1). Я не уверен, как построить рекурсивное дерево так, чтобы были получены все решения. В общем, как думать о построении рекурсивных деревьев для разных решений, например, уникальных комбинаций (которые будут содержать только одно из перечисленных выше возможных решений), уникальных последовательностей и т. д.? Любая помощь приветствуется!
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как я могу генерировать плотные уникальные идентификаторы типов во время компиляции?
Anonymous » » в форуме C++ - 0 Ответы
- 20 Просмотры
-
Последнее сообщение Anonymous
-