题解 | 加起来和为目标值的组合(二)

加起来和为目标值的组合(二)

https://www.nowcoder.com/practice/75e6cd5b85ab41c6a7c43359a74e869a?tpId=196&tqId=37076&rp=1&sourceUrl=%2Fexam%2Foj%3Fpage%3D1%26tab%3DPython%25E7%25AF%2587%26topicId%3D314&difficulty=undefined&judgeStatus=undefined&tags=&title=

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param num int整型一维数组 
# @param target int整型 
# @return int整型二维数组
#
class Solution:
    def combinationSum2(self , num: List[int], target: int) -> List[List[int]]:
        num.sort()
        n = len(num)
        res, path = [], []
        vis = [False]*n
        def dfs(x:int,c:int):
            if c==0:
                res.append(path.copy())
                return
            for y in range(x,n):
                if not vis[y] and num[y]<=c:
                    if y>0 and num[y]==num[y-1] and not vis[y-1]:
                        continue
                    vis[y] = True
                    path.append(num[y])
                    dfs(y+1,c-num[y])
                    path.pop()
                    vis[y] = False
            
        dfs(0,target)
        return res

全部评论

相关推荐

09-16 17:32
门头沟学院 Java
顺顺超爱学:1.熟悉Java编程语言,熟悉集合,多线程,IO,反射等核心知识,了解线程池,ThreadLocal等进阶知识; 2.熟悉Mysql数据库,熟练使用sql,熟悉索引,存储引擎,事务原理,MVCC,锁机制,了解sql优化; 3.熟悉Redis缓存,了解常见的数据类型,了解缓存常见问题及其解决方案,了解使用Redis实现的分布式锁方案; 4.熟悉Javaweb开发框架,熟悉spring,springmvc,mybatis等,了解IOC,AOP等; 5.熟悉微服务开发框架,熟悉SpringBoot,SpringCloud,包括Nacos,OpenFeign,Gateway等核心组件; 6.熟悉Rabbitmq消息队列,熟练使用消息模型,了解架构,消息可靠性,死信队列,延迟消息等;
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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