设A是一组非空整数.编写一个函数find,输出具有最大乘积的A的非空子集.例如,find([ - 1,-2,-3,0,2])= 12 =( - 2)*( - 3)*2
这就是我的想法:将列表分成正整数列表和负整数列表:
这是我在Python中的代码:
def find(xs):
neg_int = []
pos_int = []
if len(xs) == 1:
return str(xs[0])
for i in xs:
if i < 0:
neg_int.append(i)
elif i > 0:
pos_int.append(i)
if len(neg_int) == 1 and len(pos_int) == 0 and 0 in xs:
return str(0)
if len(neg_int) == len(pos_int) == 0:
return str(0)
max = 1
if len(pos_int) > 0:
for x in pos_int:
max=x*max
if …
Run Code Online (Sandbox Code Playgroud)