给定元素数n和m我必须打印所有不同的数组,其中m个值为-1,n-m值为1.
答案 0 :(得分:1)
你必须使用递归,但我希望它有所帮助。你确保你在你的数组中向你的级别向下和向你的每个级别添加+1,或者如果你仍然没有使用你的所有m -1,则确保-1。
最后你打印出你已经获得的数组(向量),只要它中有n个数字并且你已经使用了正确的m -1' s。 left-overall显示总计剩余元素的数量。 left-negative显示你还可以添加多少-1。
def rec(left_overall, left_negative, v = []):
if left_overall == 0 and left_negative == 0:
for i in range(0, len(v)):
print(v[i], end=" ")
print()
return
if left_overall == 0:
return
v.append(1)
rec(left_overall - 1, left_negative, v)
v.pop()
if left_negative > 0:
v.append(-1)
rec(left_overall - 1, left_negative - 1, v)
v.pop()
return
n = 5
m = 2
arr = []
rec(n, m, arr)