相对于子集无重复元素外,此时给出的列表里面含有重复元素,那么最关键的问题就是在去除重复上
对于求子集的过程中,如果在当前决策层次上之前已经判断过与其相同的数据那么该数据就是不需要判断的
res = new list;
def bacetrack(path, 选择列表)
res.push(path)
for choose in choose_list
if(choose not done)
path.add(choose) // 做出选择
remove choose from choose_list
bacetrack(path, new choose_list)
path.delete(choose) // 取消该次选择
else
pass
if(choose not done) 可以通过对元数据进行排序如果当前数据和在其之前的数据相同,跳过