欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

LeetCode基础之回溯——22.括号生成

时间:2023-04-29

数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。

示例 1:输入:n = 3输出:["((()))","(()())","(())()","()(())","()()()"]示例 2:输入:n = 1输出:["()"]

代码

class Solution { List res=new ArrayList<>(); public List generateParenthesis(int n) { if(n==0){ return res; } back("",n,n); return res; } public void back(String ans,int left,int right){ if(left==0&&right==0){ res.add(ans); } //剪枝(左括号可以使用的个数严格大于右括号可以使用的个数,才剪枝,注意这个细节) if (left > right) { return; } if(left>0){ back(ans+'(',left-1,right); } if(right>0){ back(ans+')',left,right-1); } }}

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。