递归 | HJ93 数组分组

# 最优解
def dfs(three, five, other):
    if not other:
        if sum(three) == sum(five):
            return True
        else:
            return False
    if dfs(three+other[:1], five, other[1:]):
        return True
    if dfs(three, five+other[:1], other[1:]):
        return True
 
while True:
    try:
        n, nums = int(input()), list(map(int, input().split()))
        three, five, other = [], [], []
        for num in nums:
            if num % 3 == 0:
                three.append(num)
            elif num % 5 == 0:
                five.append(num)
            else:
                other.append(num)
        if dfs(three, five, other):
            print ('true')
        else:
            print ('false')
    except:
        break

华为笔试刷题 文章被收录于专栏

高质量题: 1~40:HJ16,HJ22,HJ24,HJ26,HJ27,HJ28,HJ35,HJ37,HJ39; 40~80:HJ41,HJ42,HJ43,HJ44,HJ48,HJ50,HJ52,HJ53,HJ57,HJ61,HJ63,HJ64,HJ70,HJ71,HJ74,HJ77; 80~108:HJ82,HJ85,HJ88,HJ89,HJ93,HJ95,HJ98,HJ103,HJ107

全部评论

相关推荐

我的人生算是废了,23届裸辞空档一年,存款只能坚持几个月了,找不到像样的工作了,人生何去何从。
梦想是成为七海千秋:这大环境下为什么要裸辞呀,风险真的挺大的,而且社招的话23届没有太多的竞争力,不过既然已经裸辞了就不要焦虑慢慢找。
点赞 评论 收藏
分享
程序员牛肉:这一眼假啊,基本上都是骗人的,不然就涉及到职位贪腐了,就像之前华为的OD事件,看你运气好不好了
点赞 评论 收藏
分享
仁者伍敌:难怪小公司那么挑剔,让你们这些大佬把位置拿了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务