题解 | #数组分组#
数组分组
https://www.nowcoder.com/practice/9af744a3517440508dbeb297020aca86
def digui(z,y,zil):
if not zil:
if z==y:
return True
else:
return False
if digui(z+zil[0],y,zil[1:]) or digui(z,y+zil[0],zil[1:]):
return True
else:
return False
z, y, zil = 0, 0, []
num = input()
nl = list(map(int,input().split()))
for n in nl:
if n % 5 == 0:
z += n
elif n % 3 == 0:
y += n
else:
zil.append(n)
print(str(digui(z,y,zil)).lower())
这个递归可以理解为先将所有5放左边,所有3放右边,所有自由数字此时都有两个选择,一个放左边,一个放右边,递归其实就是更简洁地遍历所有的自由数字的选择组合
字节跳动成长空间 989人发布