算法题.输入参数:(小数数组,总和)输出参数:小数二维数组要求:从输入的小数数组中找出所有和为输入的总和的组合例子输入([1,2,3,4],6)输出[[1,2,3],[2,4]]
1 回答
德玛西亚99
TA贡献1770条经验 获得超3个赞
import copy
input_L = [1,2,3,4]
result = []
global tmp_answer
tmp_answer = []
def solve(input_L,res_sum,tmp_answer):
print input_L,res_sum,tmp_answer,'\n\n'
#满足条件,输出结果
if res_sum == 0:
x = sorted(copy.deepcopy(tmp_answer))
if x in result:
return
else:
result.append(x)
#不满足条件,返回
elif res_sum <0 or len(input_L) == 0:
#tmp_answer.pop()
return
for i in range(0, len(input_L)):
d = input_L[i]
#1 取第i个做为组合
tmp_answer.append(d)
input_L.pop(i)
#2 获取 res_sum-d 的组合结果
solve(input_L,res_sum-d,tmp_answer)
#3 放回i个
tmp_answer.pop()
input_L.append(d)
solve(input_L,6,tmp_answer)
print result
添加回答
举报
0/150
提交
取消