力扣22:括号的生成

 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

class Solution {
    public List generateParenthesis(int n) {
        List result = new ArrayList<>();
        backtracking(n, result, 0, 0, "");
        return result;
    }

    public void backtracking(int n, List result, int left, int right, String str) {
        if (right > left)
            return;
        if (left == right && right == n) {// 找到有效的括号
            result.add(str);
            return;
        }

        if (left < n) {// 还有左括号,加入到str中
            backtracking(n, result, left + 1, right, str +"(");
        }

        if (right < left) {// 左边的括号比右边的多
            backtracking(n, result, left, right + 1, str +")");
        }
    }
}

你可能感兴趣的:(leetcode,算法,职场和发展)