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)
相关推荐
阿方.9189 分钟前
《树与二叉树详解:概念、结构及应用》
数据结构·二叉树··知识分享
应用市场13 分钟前
Qt C++ 图形绘制完全指南:从基础到进阶实战
开发语言·c++·qt
NAGNIP14 分钟前
大模型微调框架之TRL
算法
麦当_15 分钟前
SwipeMultiContainer 滑动切换容器算法指南
前端·javascript·算法
橘子1335 分钟前
递归,搜索与回溯算法
算法
青草地溪水旁38 分钟前
设计模式(C++)详解—单例模式(2)
c++·单例模式
bkspiderx1 小时前
C++时区操作全版本指南(含C++03/C++11-17/C++20)
linux·开发语言·c++·c++20·时区
黄贵根1 小时前
C++20 基于文本文件的类对象增删查改系统
算法·c++20
max5006001 小时前
使用OmniAvatar-14B模型实现照片和文字生成视频的完整指南
图像处理·人工智能·深度学习·算法·音视频
可触的未来,发芽的智生1 小时前
追根索源-神经网络的灾难性遗忘原因
人工智能·神经网络·算法·机器学习·架构