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

回溯法

时间:2020-02-28 14:13:32      阅读:49      评论:0      收藏:0      [点我收藏+]

标签:solution   方式   rate   return   list   oid   一个   元素   The   

22. 括号生成

递归回溯:

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!