题解 | #数组分组#
数组分组
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
查看19道真题和解析