码迷,mamicode.com
首页 > 其他好文 > 详细

[leedcode 22] Generate Parentheses

时间:2015-07-08 00:24:55      阅读:110      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!