leetcode:括号生成
回溯的本质是穷举,穷举所有情况,这里有剪枝,只在有效情况下继续
class Solution { vector<string> res; string str; void backtracking(int left,int right){ if(left<0 || left>right) return;//出现无效情况就不继续 if(left==0 && right==0){ res.emplace_back(str); return; } if(left>0){//只在有效情况下继续 str+='('; backtracking(left-1,right); str.pop_back(); } if(right>left){ str+=')'; backtracking(left,right-1); str.pop_back(); } } public: vector<string> generateParenthesis(int n) { res.clear(); str.clear(); backtracking(n,n); return res; } };
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】