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)
相关推荐
Mr YiRan3 小时前
C++面向对象继承与操作符重载
开发语言·c++·算法
蚊子码农8 小时前
算法题解记录--239滑动窗口最大值
数据结构·算法
liliangcsdn8 小时前
A3C算法从目标函数到梯度策略的探索
算法
陈天伟教授8 小时前
人工智能应用- 材料微观:06.GAN 三维重构
人工智能·神经网络·算法·机器学习·重构·推荐算法
liliangcsdn9 小时前
A3C强化学习算法的探索和学习
算法
Figo_Cheung9 小时前
Figo《量子几何学:从希尔伯特空间到全息时空的统一理论体系》(二)
算法·机器学习·几何学·量子计算
额,不知道写啥。9 小时前
HAO的线段树(中(上))
数据结构·c++·算法
LYS_06189 小时前
C++学习(5)(函数 指针 引用)
java·c++·算法
紫陌涵光10 小时前
669. 修剪二叉搜索树
算法·leetcode