题解 | #数组分组#

数组分组

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

全部评论

相关推荐

10-15 16:27
门头沟学院 C++
LeoMoon:建议问一下是不是你给他付钱😅😅
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务