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)
相关推荐
Bruce_Liuxiaowei32 分钟前
驴滑块拼图游戏:从19世纪的纸片谜题到数学博弈论
人工智能·算法
一直C37 分钟前
Linux系统编程|信号进阶 + SystemV IPC(消息队列、共享内存)
linux·c语言·开发语言·算法·青少年编程·vim
每周报刊1 小时前
竞速座舱级视界:爱攻 AGP497UCZD 超宽 QDOLED 显示器解析
数据结构·游戏·计算机外设
布莱克6052 小时前
链表详解:定义、作用、应用场景及与数组的区别(C/C++ 实战)
c语言·开发语言·c++·链表
鹿角片ljp2 小时前
LeetCode 141. 环形链表|从 HashSet 到快慢指针 O (1) 空间最优解
算法·leetcode·链表
薛定e的猫咪2 小时前
(NeurIPS 2022)GraphGPS:MPNN 与全局注意力的融合之道
人工智能·深度学习·学习·算法
执子星海2 小时前
Registry Win32 API详解
c++·windows·microsoft·visualstudio·微软
AI服务老曹3 小时前
车牌识别算法接入AI视频分析平台的流程和误报优化
人工智能·算法·音视频
江屿风3 小时前
C++OJ题经验总结(竞赛)5
开发语言·c++
神威难绷泪3 小时前
Linux应用软件编程:线程分离属性 互斥机制 同步机制 死锁
linux·开发语言·算法·线程