【LeetCode热题100】【回溯】括号生成

题目链接:22. 括号生成 - 力扣(LeetCode)

给n对括号找出所有有效组合,首先常规深度遍历回溯能得到所有组合,然后我们来看什么样的组合是有效的,什么样的组合是无效的,采用尾插的字符拼接,因此无论何时)的数量不能超过(,当(和)的数量都得到了n,说明这个组合完成了

复制代码
class Solution {
public:
    vector<string> ans;

    void dfs(string an, int left, int right) {
        if (left < 0 || left > right)
            return;
        if (left == 0 && right == 0) {
            ans.push_back(std::move(an));
            return;
        }
        dfs(an + '(', left - 1, right);
        dfs(an + ')', left, right);
    }

    vector<string> generateParenthesis(int n) {
        dfs("", n, n);
        return ans;
    }
};
相关推荐
Hi李耶13 小时前
【LeetCode】557.反转字符串中的单词 III
算法·leetcode·职场和发展
深蓝学院13 小时前
机器人学习算法五大体系详解:模仿、强化、多模态、持续学习……
算法·机器人
2401_8582861113 小时前
OS82.【Linux】设计线程池
java·linux·运维·服务器·开发语言·算法·线程池
Epiphany.55614 小时前
找到所有好字符串(记忆化搜索+KMP)(里面含KMP模板,用来入门)
算法
坚持编程的菜鸟14 小时前
模拟实现strncpy
c语言·算法·模拟实现strncpy
深圳市快瞳科技有限公司16 小时前
个体识别、行为解读、健康管理:多模态宠物AI大模型的场景化落地
人工智能·算法·计算机视觉·大模型·多模态·宠物·宠物ai识别
wangwangmoon_light16 小时前
1.1 灵神题单总结_滑动窗口与双指针
leetcode
liulilittle16 小时前
归一化:激活函数
人工智能·算法·机器学习·llm
Mem0rin18 小时前
前缀和:一维与二维
数据结构·算法
小趴蔡ha18 小时前
12 K-Means 聚类入门:没有标签如何发现数据分组
算法·kmeans·聚类