标签:solution 方式 rate return list oid 一个 元素 The
递归回溯:
1)结束点:右括号有n个,生成一条path,返回
2)如果右括号小于n个,对于当前可以有两种继续的方式:
2.1)左括号不足n个,加一个左括号继续递归
2.2)右括号小于左括号,加一个右括号继续递归
如何体现回溯的思想?递归return就相当于回到了上一个结点。
相似的题目:路径等等(反回一个list,一个list里面的子元素单独求解。)
1 class Solution { 2 List<String> res = new ArrayList<>(); 3 public List<String> generateParenthesis(int n) { 4 gene("", 0, 0, n); 5 return res; 6 } 7 public void gene(String path, int left, int right, int max){ 8 if(right == max){ 9 res.add(path); 10 return; 11 } 12 if(left < max){ 13 gene(path+"(", left+1, right, max); 14 } 15 if(right<left){ 16 gene(path+")", left, right+1, max); 17 } 18 } 19 }
标签:solution 方式 rate return list oid 一个 元素 The
原文地址:https://www.cnblogs.com/naonaoling/p/12376706.html