[leetCode刷题笔记]22. Generate Parentheses

来源:互联网 发布:公司如何屏蔽淘宝网 编辑:程序博客网 时间:2024/05/16 17:28

还是backtrack

 一开始一对一对的加括号结果出错了,因为一对括号只能包第一个。还是两个括号分开加。用left和right表示左右括号的数量。

public class Solution {    public List<String> generateParenthesis(int n) {        List<String> res= new ArrayList<String>();        helper(res, "", 0, 0, n);        return res;    }    private void helper (List<String> res, String par, int left, int right, int k) {        if (2 * k <= left + right) {            res.add(par);            return;        }        if (left < k) {            helper(res, par + "(", left + 1, right, k);        }         if (right < left) {            helper(res, par + ")", left, right + 1, k);        }    }}


0 0
原创粉丝点击