美文网首页
22. Generate Parentheses

22. Generate Parentheses

作者: SummerDreamEve | 来源:发表于2018-04-23 10:41 被阅读0次

    思路

    大问题化成子问题,每次增加分解成两种可能:
    1.加“(”,前提“(”数量小于n
    2.加“)”,前提“)”数量小于“)”

    代码

    class Solution {
        public List<String> generateParenthesis(int n) {
          
            List<String> res = new ArrayList<>();
            backtrack(n,res,0,0,"");
            return res;
        }
        public void backtrack(int n, List<String> res,int open,int close,String s){
            if(s.length() == 2*n){
                res.add(s);
            }
            else{
                if(open<n){
                   backtrack(n,res,open+1,close,s+"("); 
                }
                if(close<open){
                   backtrack(n,res,open,close+1,s+")"); 
                }           
            }
        }
    }
    

    相关文章

      网友评论

          本文标题:22. Generate Parentheses

          本文链接:https://www.haomeiwen.com/subject/jayklftx.html