首页 > 其他 > 详细

[leedcode 22] Generate Parentheses

时间:2015-07-08 00:23:53      阅读:214      评论:0      收藏:0      [点我收藏+]
public class Solution {
    //卡特兰数,一共有C2n^n-C2n^n-1种组合数
    //本题的递归非常经典,需要多看牢记
    List<String> res;
    StringBuilder seq;
    public List<String> generateParenthesis(int n) {
       res=new ArrayList<String>();
       seq=new StringBuilder();
       generate(n,0,0,0);
       return res;
    }
    public void generate(int n,int left,int right,int level){
        if(2*n==level){
            res.add(seq.toString());
            return;
        }
        if(left<n){
            seq.append(‘(‘);
            generate(n,left+1,right,level+1);
            seq.deleteCharAt(level);//记得要删除
            
        }
        if(left>right){
            seq.append(‘)‘);
            generate(n,left,right+1,level+1);
           seq.deleteCharAt(level);
            
        }
        
        
    }
}

 

[leedcode 22] Generate Parentheses

原文:http://www.cnblogs.com/qiaomu/p/4628773.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!