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)
相关推荐
小李独爱秋2 分钟前
计算机网络经典问题透视:漏桶管制器的工作原理是怎么样的?
数据结构·计算机网络·算法·信息与通信·流量控制·漏桶管制器
Codeking__3 分钟前
C++20的consteval和constinit(接C++11的constexpr)
算法·c++20
2401_841495648 分钟前
【数据结构】英文单词词频统计与检索系统
数据结构·c++·算法·排序·词频统计·查找·单词检索
独自破碎E8 分钟前
【迭代+动态规划】把数字翻译成字符串
算法·动态规划
sunfove8 分钟前
从信息熵到决策边界:决策树算法的第一性原理与深度解析
算法·决策树·机器学习
Niuguangshuo12 分钟前
CLIP:连接图像与文本的 AI 核心工具
人工智能·神经网络·算法
sali-tec14 分钟前
C# 基于OpenCv的视觉工作流-章13-边缘提取
人工智能·opencv·算法·计算机视觉
Elnaij18 分钟前
从C++开始的编程生活(17)——多态
开发语言·c++
Frank_refuel22 分钟前
C++之多态详解
开发语言·c++
kaikaile199522 分钟前
基于MATLAB的PSO-ELM(粒子群优化极限学习机)算法实现
深度学习·算法·matlab