题解 | #数组分组#

数组分组

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

def solution(nums):
    Sum5 = Sum3 = 0
    tmp = []
    while nums:
        num = nums.pop()
        if num%5==0:
            Sum5 += num
        elif num%3==0:
            Sum3 += num
        else:
            tmp.append(num)
    sub = abs(Sum5 - Sum3)
    if not tmp:
        return False if sub else True
    pf = sorted(tmp)
    for i in range(1,len(tmp)):
        pf[i] += pf[i-1]
    Sumt = pf[-1]
    if sub==0:
        if not Sumt:
            return True
        if pf[-1]%2==0 and (pf[-1]/2) in pf:
            return True
        return False
    return True if findSub(tmp,sub) else False
def findSub(nums,target):
    def dfs(nums,S1,S2):
        if not nums:
            return True if abs(S1-S2) == target else False
        num = nums.pop()
        return dfs(nums[:],S1+num,S2) or dfs(nums[:],S1,S2+num)
    return dfs(nums,0,0)
 
n = int(input())
nums = list(map(int,input().split()))
if solution(nums): 
    print("true")
else:
    print("false")

#我拿到offer啦##好的APP推送需要满足什么条件##你觉得一款游戏为什么好玩#
全部评论

相关推荐

专业嗎喽:个人信息名字太大,合到电话邮箱那一栏就行,有党员写过党,剩下其他全删,站空太大了 把实习经历丰富,放最前面,然后是个人评价,技能之类的,然后是学校信息。项目经历最后面,可以就选一个自己擅长的。 现在是学校不是92就扣分的,没必要放前面。 然后现在看重实习经历>竞赛经历(校园经历)>课程项目经历
点赞 评论 收藏
分享
牛客44664404...:你看什么厂了,我投了一堆现在才发面试我都已经不面了,机会还是很多的,很多现在才推进度
秋招的嫡长offer
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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