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