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)
相关推荐
AI视觉网奇6 小时前
Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr
开发语言·c++·算法
ghie90906 小时前
ECG波形检查与分析系统
算法
智者知已应修善业7 小时前
【输入两个数字,判断两数相乘是否等于各自逆序数相乘】2023-10-24
c语言·c++·经验分享·笔记·算法·1024程序员节
oioihoii7 小时前
C++11到C++23语法糖万字详解
java·c++·c++23
比昨天多敲两行7 小时前
C++入门基础
开发语言·c++
集3047 小时前
C++多线程学习笔记
c++·笔记·学习
Shingmc37 小时前
【Linux】进程控制
linux·服务器·算法
ComputerInBook7 小时前
C++编程语言:标准库:第39章——本地化(语言环境)( Locales)(Bjarne Stroustrup)
c++·c++语言环境·c++ 本地化设置·c++ locale·c++ facet·语言特征
hefaxiang7 小时前
分支循环(下)(二)
c语言·开发语言·数据结构
阿正的梦工坊8 小时前
DreamGym:通过经验合成实现代理学习的可扩展化
人工智能·算法·大模型·llm