【leetcode100】组合总和

1、题目描述

给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。

candidates 中的 同一个 数字可以 无限制重复被选取 。如果至少一个数字的被选数量不同,则两种组合是不同的。

对于给定的输入,保证和为 target 的不同组合数少于 150 个。

示例 1:

复制代码
输入:candidates = [2,3,6,7], target = 7
输出:[[2,2,3],[7]]
解释:
2 和 3 可以形成一组候选,2 + 2 + 3 = 7 。注意 2 可以使用多次。
7 也是一个候选, 7 = 7 。
仅有这两种组合。

2、初始思路

2.1 思路

本道题中,抽象为树状图为:

2.2 代码

复制代码
class Solution:
    def combinationSum(self, candidates: List[int], target: int) -> List[List[int]]:
        res = []
        path = []
        def backtracking(candidates, target, sumCurrent, startIndex):
            if sumCurrent > target:
                return
            if sumCurrent == target:
                res.append(path.copy())
                return
            for i in range(startIndex,len(candidates)):
                path.append(candidates[i])
                sumCurrent += candidates[i]
                backtracking(candidates, target, sumCurrent, i)
                sumCurrent -= candidates[i]
                path.pop()
        backtracking(candidates, target, 0, 0)
        return res
相关推荐
普贤莲花3 小时前
【2026年第18周---写于20260501】---舍得
程序人生·算法·leetcode
2zcode3 小时前
基于深度学习的口腔疾病图像识别系统(UI界面+改进算法+数据集+训练代码)
人工智能·深度学习·算法
小龙报3 小时前
【Coze-AI智能体平台】低代码省时高效:Coze 应用开发全流程指南
java·人工智能·python·深度学习·低代码·chatgpt·交互
技术钱3 小时前
LCEL表达式与Runnable可运行协议
python
Echo_NGC22373 小时前
【论文解读】Attention Is All You Need —— AI 时代的“开山之作“,经典中的经典(transformer小白导读)
人工智能·python·深度学习·神经网络·机器学习·conda·transformer
Sarvartha3 小时前
N 个字符串最长公共子序列(LCS)求解问题
数据结构·算法
一切皆是因缘际会3 小时前
下一代 AI 架构:基于记忆演化与单向投影的安全智能系统
大数据·人工智能·深度学习·算法·安全·架构
falldeep3 小时前
五分钟了解OpenClaw底层架构
人工智能·算法·机器学习·架构
m0_629494733 小时前
LeetCode 热题 100-----16.除了自身以外数组的乘积
数据结构·算法·leetcode