leetcode: Generate Parentheses

来源:互联网 发布:公式编辑器 mac 破解 编辑:程序博客网 时间:2024/05/18 00:10

还是用最基本的递归去求解。    参数维护当前未匹配的左括号和总计的左括号数,在递归的过程中根据这两个参数判断能否继续或者能否插入右括号。


public class Solution {        List<String> res = new ArrayList<String>();    public List<String> generateParenthesis(int n) {        res.clear();        fun(0,n*2,0,0,"");        return res;    }    void fun(int dep,int MaxDep,int leftNow,int leftAll,String tmp)    {        if( leftAll*2>MaxDep )        {            return ;        }        if( dep==MaxDep)        {            res.add(tmp);            return ;        }        fun(dep+1,MaxDep,leftNow+1,leftAll+1,tmp+'(');        if( leftNow>0 )        {            fun(dep+1,MaxDep,leftNow-1,leftAll,tmp+')');        }    }}


0 0
原创粉丝点击