刷题记录0804
不知不觉八月了!基本上每天都会写一两道,但没有坚持题解打卡,我发现写题解可以整理自己的思路
22. 括号生成 - 力扣(LeetCode)
是一道回溯的题目 第一次做的时候也看了题解
class Solution {
public:// 主函数是生成所有有效的括号组合vector<string> generateParenthesis(int n) {vector<string> res; // 存储所有有效的括号组合dfs(res, "", n, 0, 0); // 调用深度优先搜索(DFS)生成括号组合return res; // 返回结果}// 辅助函数 深度优先搜索生成括号组合void dfs(vector<string>& res, string path, int n, int lc, int rc) {// 终止条件:当前路径长度达到2n(即括号已经全部用完)if(path.size()==2*n){res.push_back(path);//把当前存储的存入结果里面return ;}//递归条件1if(lc<n) dfs(res,path+'(',n,lc+1,rc);//左括号的长度+1if(rc<lc)dfs(res,path+')',n,lc,rc+1);//右括号的长度+1}
};