题解 | #数组分组#

数组分组

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

def wubei(a):
    if a%5==0:
        return True
    else:
        return False

def sanbei(a):
    if a%3==0 and a%5 !=0:
        return True
    else:
        return False

b = input()
c = list(map(int,input().split()))
d = sum(c)
d = d/2.0
e = []
f = []
g = []
l = 0
for i in range(len(c)):
    if wubei(c[i]):
        e.append(c[i])
    elif sanbei(c[i]):
        f.append(c[i])
    else:
        g.append(c[i])
h = len(g)
def dfs(j):
    global l
    if sum(e)==d:
        l=1
        return True
    for k in range(2):
        if k==0 and j<h:
            e.append(g[j])
            j +=1
            dfs(j)
            e.pop(-1)
            j -= 1
        if k==1 and j<h:
            j+=1
            dfs(j)


dfs(0)
if l==1:
    print("true")
else:
    print("false")

有蛮多是没用的,我懒得删了

思路:

1:将数组分为,三个。5的倍数,三的倍数(但不是五的倍数),剩下的数字

2:使用dfs

全部评论

相关推荐

03-29 14:19
门头沟学院 Java
你背过凌晨4点的八股文么:加油同学,人生的容错率很高,只是一个暑期罢了,后面还有很多机会!
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务