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))
全部评论

相关推荐

09-25 00:00
已编辑
电子科技大学 Java
球球与墩墩:这不是前端常考的对象扁平化吗,面试官像是前端出来的 const flattern = (obj) => { const res = {}; const dfs = (curr, path) => { if(typeof curr === 'object' && curr !== null) { const isArray = Array.isArray(curr); for(let key in curr) { const newPath = path ? isArray ? `${path}[${key}]` : `${path}.${key}` : key; dfs(curr[key], newPath); } } else { res[path] = curr } } dfs(obj); return res; }
查看3道真题和解析
点赞 评论 收藏
分享
渴望wlb的牛油果很...:直说卡第一学历不就行了 非得拐弯抹角
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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