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)
相关推荐
有为少年37 分钟前
Welford 算法 | 优雅地计算海量数据的均值与方差
人工智能·深度学习·神经网络·学习·算法·机器学习·均值算法
Tim_101 小时前
【C++入门】04、C++浮点型
开发语言·c++
Ven%1 小时前
从单轮问答到连贯对话:RAG多轮对话技术详解
人工智能·python·深度学习·神经网络·算法
山楂树の1 小时前
爬楼梯(动态规划)
算法·动态规划
谈笑也风生1 小时前
经典算法题型之复数乘法(二)
开发语言·python·算法
hkNaruto1 小时前
【C++】记录一次C++程序编译缓慢原因分析——滥用stdafx.h公共头文件
开发语言·c++
智算菩萨1 小时前
强化学习从单代理到多代理系统的理论与算法架构综述
人工智能·算法·强化学习
lhn1 小时前
大模型强化学习总结
算法
Gigavision1 小时前
MMPD数据集 最新Mamba算法 源码+数据集 下载方式
算法
Xの哲學1 小时前
Linux UPnP技术深度解析: 从设计哲学到实现细节
linux·服务器·网络·算法·边缘计算