【发布时间】:2016-03-07 17:33:40
【问题描述】:
我想使用回溯解决问题。如...我得到了一个数字列表,我想使用回溯找到所有可能的排列,尊重给定条件。
我有用于生成排列列表的代码,但这无济于事,因为我无法在将每个排列添加到列表之前单独检查它,因此它不是回溯,它只是递归。 我也了解回溯的工作方式:从 0 到 x 的排列,但不适用于列表......
这是我的排列列表生成器
def permutare(self, lista):
if len(lista) == 1:
return [lista]
res = []
for permutation in self.permutare(lista[1:]):
for i in range(len(lista)):
res.append(permutation[:i] + lista[0:1] + permutation[i:])
return res
有效但对我没有帮助。我尝试在某处插入验证,但无处可工作。我尝试了所有我能找到的排列算法。我需要一个带回溯的
有什么想法/算法/伪代码可以用条件回溯排列吗?
【问题讨论】:
标签: python algorithm recursion backtracking