为了账号安全,请及时绑定邮箱和手机立即绑定

来写代码了,伪代码也行.算法题.

来写代码了,伪代码也行.算法题.

达令说 2018-08-06 13:14:50
算法题.输入参数:(小数数组,总和)输出参数:小数二维数组要求:从输入的小数数组中找出所有和为输入的总和的组合例子输入([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


查看完整回答
反对 回复 2018-08-22
  • 1 回答
  • 0 关注
  • 833 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信