LeetCode39. Combination Sum

文章目录

一、题目

Given an array of distinct integers candidates and a target integer target, return a list of all unique combinations of candidates where the chosen numbers sum to target. You may return the combinations in any order.

The same number may be chosen from candidates an unlimited number of times. Two combinations are unique if the

frequency

of at least one of the chosen numbers is different.

The test cases are generated such that the number of unique combinations that sum up to target is less than 150 combinations for the given input.

Example 1:

Input: candidates = [2,3,6,7], target = 7

Output: [[2,2,3],[7]]

Explanation:

2 and 3 are candidates, and 2 + 2 + 3 = 7. Note that 2 can be used multiple times.

7 is a candidate, and 7 = 7.

These are the only two combinations.

Example 2:

Input: candidates = [2,3,5], target = 8

Output: [[2,2,2,2],[2,3,3],[3,5]]

Example 3:

Input: candidates = [2], target = 1

Output: []

Constraints:

1 <= candidates.length <= 30

2 <= candidates[i] <= 40

All elements of candidates are distinct.

1 <= target <= 40

二、题解

cpp 复制代码
class Solution {
public:
    vector<vector<int>> res;
    vector<int> tmp;
    void backtracking(vector<int>& candidates,int target,int sum,int startIndex){
        if(sum > target) return;
        if(sum == target){
            res.push_back(tmp);
            return;
        }
        for(int i = startIndex;i < candidates.size();i++){
            tmp.push_back(candidates[i]);
            sum += candidates[i];
            backtracking(candidates,target,sum,i);
            sum -= candidates[i];
            tmp.pop_back();
        }
    }
    vector<vector<int>> combinationSum(vector<int>& candidates, int target) {
        backtracking(candidates,target,0,0);
        return res;
    }
};
相关推荐
fu的博客10 分钟前
【数据结构7】链式栈实现
数据结构·算法
xiaoye-duck10 分钟前
《算法题讲解指南:优选算法-双指针》--01移动零,02复写零
c++·算法
田里的水稻14 分钟前
LPC_激光点云定位(LSLAM)-(IPC)
人工智能·算法·数学建模·机器人·自动驾驶
额,不知道写啥。28 分钟前
P5314 ODT(毒瘤树剖)
数据结构·c++·算法
CHANG_THE_WORLD29 分钟前
深入指针5:回调函数与泛型排序
数据结构·算法
qq_4542450332 分钟前
计算机与AI领域中的“上下文”:多维度解析
数据结构·人工智能·分类
Once_day34 分钟前
GCC编译(4)构造和析构函数
c语言·c++·编译和链接
今儿敲了吗34 分钟前
24| 字符串
数据结构·c++·笔记·学习·算法
橘色的喵44 分钟前
嵌入式 Telnet 调试 Shell 重构: 纯 POSIX 轻量化实现
c++
橘色的喵44 分钟前
ztask: 一个C++14编写的、 类型安全、RAII 与模板化任务调度器
c++