leetcode Generate Parentheses
来源:互联网 发布:中国最良心的网游知乎 编辑:程序博客网 时间:2024/06/07 05:03
题目链接
思路:
这个题目其实看了别人的代码。当然只是匆匆扫了一眼,并没有看仔细。
其实包含的思想是有剪枝的穷尽
我们可以定义两个变量一个记录还有多少个(另一个变量记录还有多少个)
那么,下面的递归就是穷尽所有的可能
help(prev+"(", open-1, close);help(prev+")",open,close-1);
当open==close==0时。代表所有的()都用完了,需要添加到结果里面。
需要剪枝的情况
1open 和close为负数。
2close的数目小于open。。这时候产生的结果可能是这样())等等,因为)的数量必须必(小。
思考为啥open小于close就可以呢?因为这是代表(的数量多于),只要在接下来的递归产生)进行配对就好。。
public class Solution { List<String> result=new LinkedList<String>(); public List<String> generateParenthesis(int n) { help("", n, n); return result; } public void help(String prev,int open,int close) { if(open<0||close<0||close<open) { return; } if(open==0&&close==0) { result.add(prev); } help(prev+"(", open-1, close); help(prev+")",open,close-1); }}
0 0
- LeetCode: Generate Parentheses
- LeetCode: Generate Parentheses
- [Leetcode] Generate Parentheses
- leetcode 51: Generate Parentheses
- [LeetCode] Generate Parentheses
- Leetcode: Generate Parentheses
- LeetCode Generate Parentheses
- 【leetcode】Generate Parentheses
- [LeetCode]Generate Parentheses
- Leetcode Generate Parentheses
- LeetCode-Generate Parentheses
- LeetCode: Generate Parentheses
- LeetCode - Generate Parentheses
- LeetCode 22: Generate Parentheses
- LeetCode: Generate Parentheses
- Leetcode: Generate Parentheses
- 【leetcode】Generate Parentheses
- Leetcode: Generate Parentheses
- VC++ 关机代码
- c# IEnumerable和IEnumerator & Lambda表达式
- 类(2)---Javascript定义类(class)的三种方法
- 核心解读:三严三实
- caffe 的
- leetcode Generate Parentheses
- springmvc+shiro简单配置及作用(WEB.XML springmvc部分)
- 安装完tomcat后,修改默认端口号
- 初入职oracle使用中的一点积累
- 无法在Android Studio中设置断点
- c语言函数指针的定义
- C语言--字符串处理函数的使用
- 不知道哪里错了,求指导
- 大白话系列之C#委托与事件讲解