题解 | #数组分组#

数组分组

https://www.nowcoder.com/practice/9af744a3517440508dbeb297020aca86

#解题区好像没有这么写的,其实问题的模型可以这么理解
#数组拆分成[3,6,9**],[5,10,15**][a,b,c]那么有这么几种可能3+6+9+..+a+b+c=5+10+15....或者3+6+9+..-a+b+c=5+10+15....或者3+6+9+..-a-b+c=5+10+15....
#也就是说是处理a,b,c穷举加减法等于3倍数组和5倍数组差值,这样就简单了.
n=int(input())
l=[int(i) for i in input().split()]
l5,l3,l_3_5=[],[],[]
for ele in l:
    if ele%5==0:
        l5.append(ele)
    elif ele%3==0:
        l3.append(ele)
    else:
        l_3_5.append(ele)

def func(l,n):
    if len(l) == 0:
        return True if 0==n else False
    return func(l[1:],n+l[0]) or func(l[1:],n-l[0])

a=func(l_3_5,sum(l5)-sum(l3))
if a:
    print('true')
else:
    print('false')
全部评论

相关推荐

10-17 10:05
已编辑
北华大学 全栈开发
牛客872465272号:掉头发了哥
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务