LeetCode39 组合总和

前言

题目: 39. 组合总和
文档: 代码随想录------组合总和
编程语言: C++
解题状态: 没思路...

思路

还是回溯法,不过使用回溯法时,一定要将搜索过程抽象成树形结构。

代码

回溯法

cpp 复制代码
class Solution {
private:
    vector<vector<int>> res;
    vector<int> path;
    void backtracking(vector<int>& candidates, int target, int sum, int startIndex) {
        if (sum == target) {
            res.push_back(path);
            return;
        }

        for (int i = startIndex; i < candidates.size() && sum + candidates[i] <= target; i++) {
            sum += candidates[i];
            path.push_back(candidates[i]);
            backtracking(candidates, target, sum, i);
            sum -= candidates[i];
            path.pop_back();
        }
    }
public:
    vector<vector<int>> combinationSum(vector<int>& candidates, int target) {
        res.clear();
        path.clear();
        sort(candidates.begin(), candidates.end());
        backtracking(candidates, target, 0, 0);
        return res;
    }
};
相关推荐
机器视觉知识推荐、就业指导7 小时前
C++/Qt 联合编程中的定时器使用陷阱:QObject::startTimer 报错详解
c++·qt
慢半拍iii8 小时前
数据结构——D/串
c语言·开发语言·数据结构·c++
怀旧,8 小时前
【数据结构】5. 双向链表
数据结构·windows·链表
王景程8 小时前
什么是哈希函数
算法·哈希算法
会不再投降2198 小时前
《算法复杂度:数据结构世界里的“速度与激情”》
数据结构·算法
vvilkim8 小时前
深入解析 Pandas 核心数据结构:Series 与 DataFrame
数据结构·pandas
邪恶的贝利亚8 小时前
从基础到实战-rmpt to webrtc
c++·webrtc·rtmp·流媒体
Frankabcdefgh8 小时前
Python基础数据类型与运算符全面解析
开发语言·数据结构·python·面试
kaiaaaa8 小时前
算法训练第十五天
开发语言·python·算法
Coovally AI模型快速验证8 小时前
SLAM3R:基于单目视频的实时密集3D场景重建
神经网络·算法·3d·目标跟踪·音视频