题解 | #数组分组#
数组分组
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放右边,所有自由数字此时都有两个选择,一个放左边,一个放右边,递归其实就是更简洁地遍历所有的自由数字的选择组合