链接:https://leetcode-cn.com/problems/generate-parentheses/
使用回溯(DFS)枚举所有可能生成的情况,剪去所有左括号数量小于右括号数量的子过程。
java代码:
class Solution {
List<String>ans = new ArrayList();
public List<String> generateParenthesis(int n) {
backtrack("",0,0,n);
return ans;
}
public void backtrack(String curr, int left, int right,int n)
{
if(right>left||left>n||right>n)
return;
if(curr.length()==n*2)
{
ans.add(curr);
return;
}
backtrack(curr+"(",left+1,right,n);
backtrack(curr+")",left,right+1,n);
}
}

这篇博客介绍了如何使用回溯(深度优先搜索,DFS)算法来解决LeetCode第22题——括号生成。通过Java代码详细解释了如何枚举所有可能的括号组合,并在过程中剪枝,确保左括号数量始终大于等于右括号数量。
741





