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)
相关推荐
地平线开发者5 小时前
profiler debug 工具用法与高一致性策略
算法·自动驾驶
编程大师哥5 小时前
匿名函数 lambda + 高阶函数
java·python·算法
我叫袁小陌5 小时前
算法解题思路指南
算法
MC皮蛋侠客5 小时前
C++17 多线程系列(五):C++17 并行算法——从串行到并行的零成本迁移
c++·多线程
地平线开发者5 小时前
Conv+BN+Add+ReLU 融合机制简介
算法·自动驾驶
也曾看到过繁星6 小时前
数据结构---顺序表
数据结构
yuanyuan2o26 小时前
模型预训练:Hugging Face Transformers 基础
算法·ai·语言模型·自然语言处理·nlp·深度优先
杨充6 小时前
1.3 浮点型数据设计灵魂
开发语言·python·算法
妄想出头的工业炼药师6 小时前
GS slam mono
算法·开源