【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;
    }
};
相关推荐
元启数宇34 分钟前
幕墙AI设计算法逻辑:元启数宇如何智能分格
人工智能·算法
宵时待雨37 分钟前
优选算法专题16:多源BFS
算法·宽度优先
重生之后端学习42 分钟前
53. 最大子数组和[中等]✅
java·数据结构·算法·leetcode·职场和发展
INGNIGHT1 小时前
1908 · 布尔表达式求值(stack单调栈&dfs)
开发语言·c++·算法
lucas_AI1 小时前
把表格压成 64 个 token,长文档问答反而更准了:先找表,再看数
人工智能·深度学习·算法
Zzz 小生2 小时前
Lazy Theta*:把昂贵的视线检测留到“真正需要”时再做
人工智能·算法·贪心算法·推荐算法
l1258652 小时前
# LangGraph Deep Research Agent 全流程设计:多轮研究、人机协同与真实来源管理
数据库·人工智能·python·算法·自然语言处理·oracle·langchain
青少儿编程课堂3 小时前
图形化编程实战:智能交通灯调度台,一个作品讲透循环、条件与广播
c++·python·算法·bfs·信息学竞赛
evans在进步3 小时前
LeetCode 438 找到字符串中所有字母异位词:滑动窗口与排序解法详解
算法·leetcode·职场和发展
M78佐菲3 小时前
Linux多线程:创建、回收与互斥同步
linux·笔记·学习·算法