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)
相关推荐
kk哥8899几秒前
C++新手入门
开发语言·c++
老鼠只爱大米2 分钟前
LeetCode经典算法面试题 #19:删除链表的倒数第N个结点(双指针、栈辅助法等多种实现方案详细解析)
算法·leetcode·链表·双指针·删除链表节点·一趟扫描
chao_7894 分钟前
跳跃游戏系列【贪心算法】
python·算法·游戏·贪心算法·贪心
波波00716 分钟前
每日一题:.NET 中什么是 LOH(大对象堆)?为什么频繁使用大数组或大字符串可能导致性能问题?如何优化?
java·jvm·算法
姓刘的哦16 分钟前
FFmpeg/opencv + C++ 实现直播拉流和直播推流(对视频帧进行处理)
c++·opencv·ffmpeg
独自破碎E16 分钟前
动态规划-正则表达式匹配
算法·正则表达式·动态规划
Gofarlic_OMS16 分钟前
Fluent许可证使用合规性报告自动化生成系统
java·大数据·运维·人工智能·算法·matlab·自动化
漫随流水17 分钟前
leetcode回溯算法(131.分割回文串)
数据结构·算法·leetcode·回溯算法
你撅嘴真丑20 分钟前
第六章 数据结构基础
数据结构
结衣结衣.21 分钟前
spdlog: 高性能C++日志库
开发语言·c++