LeetCode216 组合总和 III

前言

题目: 216. 组合总和 III
文档: 代码随想录------组合总和 III
编程语言: C++
解题状态: 成功解答

思路

组合题的变种,其实是变得更简单了,还是可以使用回溯法来解决。

代码

回溯法

cpp 复制代码
class Solution {
private:
    vector<vector<int>> res;
    vector<int> path;
    void backtracking(int k, int n, int startIndex) {
        if (path.size() == k) {
            int sum = 0;
            for (int i = 0; i < k; i++) {
                sum += path[i];
            }
            if (sum == n) {
                res.push_back(path);
            }
            return;
        }

        for (int i = startIndex; i <= 9 - (k - path.size()) + 1; i++) {
            path.push_back(i);
            backtracking(k, n, i + 1);
            path.pop_back();
        }
    }
public:
    vector<vector<int>> combinationSum3(int k, int n) {
        res.clear();
        path.clear();
        backtracking(k, n, 1);
        return res;
    }
};
  • 空间复杂度: O ( n ) O(n) O(n)
相关推荐
无敌秋15 小时前
C++ 抽象工厂模式实战指南
开发语言·c++·抽象工厂模式
Chat_zhanggong34515 小时前
主推NT98336BG作用有哪些?
嵌入式硬件·算法
CoderMeijun16 小时前
C++ 智能指针:auto_ptr
c++·内存管理·智能指针·raii·auto_ptr
wuminyu16 小时前
专家视角看Lambda表达式的原理解析
java·linux·c语言·jvm·c++
Run_Teenage16 小时前
算法:线段树
算法
Westward-sun.16 小时前
YOLOv2算法全方位解析:从BatchNorm到聚类先验框的九大改进
算法·yolo·聚类
扶苏xw16 小时前
【离散化算法】
算法
码之气三段.16 小时前
Codeforces Round 1095 (Div. 2) 补题
算法
ximu_polaris16 小时前
设计模式(C++)-行为型模式-命令模式
c++·设计模式·命令模式
6Hzlia16 小时前
【Hot 100 刷题计划】 LeetCode 189. 轮转数组 | C++ 三次反转经典魔法 (O(1) 空间)
c++·算法·leetcode