360笔试

import math
from typing import List
class Solution:
    def combinationSum2(self, candidates: List[int], target: int, people:int):
        if sum(candidates) < target:
            return []
        candidates.sort()
        jieguo = list()
        res = list()
        self.abc(jieguo, res, target,candidates, 0, people)
        return jieguo, len(jieguo)
    def abc(self,jieguo, res, target,candidates, index, people):
        if sum(res) >= target and len(res) == people:
            jieguo.append(res[:])
            return
        elif len(res) > people:
            return
        for i in range(index, len(candidates)):
            res.append(candidates[i])
            self.abc(jieguo, res, target,candidates, i+1, people)
            res.pop()
        
a = Solution()

n = int(input())
for i in range(n):
    m, target = map(int, input().split())
    num = int(math.ceil(m/2))
    can = list(map(int, input().split()))
    print(a.combinationSum2(can, target, num))
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-08 14:08
点赞 评论 收藏
分享
牛客92804383...:在他心里你已经是他的员工了
点赞 评论 收藏
分享
程序员小白条:这比例牛逼,750:1
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-08 13:05
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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