博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
22. Generate Parentheses
阅读量:6221 次
发布时间:2019-06-21

本文共 1325 字,大约阅读时间需要 4 分钟。

Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.

For example, given n = 3, a solution set is:

[  "((()))",  "(()())",  "(())()",  "()(())",  "()()()"]

难度:medium

题目:给定n对圆括号,写函数产生其所有格式良好的组合形式。

思路:右边括号数一定不能大于左边,然后利用递归来实现。

Runtime: 1 ms, faster than 100.00% of Java online submissions for Generate Parentheses.

Memory Usage: 27.8 MB, less than 7.34% of Java online submissions for Generate Parentheses.

class Solution {    public List
generateParenthesis(int n) { List
result = new ArrayList<>(); generateParenthesis(0, 0, n, new StringBuilder(), result); return result; } private void generateParenthesis(int left, int right, int n, StringBuilder sb, List
result) { if (left < right) { return; } if (left == right && n == left) { result.add(sb.toString()); return; } if (left < n && left >= right) { sb.append("("); generateParenthesis(left + 1, right, n, sb, result); sb.deleteCharAt(sb.length() - 1); } if (right < left) { sb.append(")"); generateParenthesis(left, right + 1, n, sb, result); sb.deleteCharAt(sb.length() - 1); } }}

转载地址:http://rrrja.baihongyu.com/

你可能感兴趣的文章
兼容ie9以下的polyfill类库
查看>>
使用Element-ui开发管理后台
查看>>
基于HTML5快速搭建TP-LINK电信拓扑设备面板
查看>>
IMWeb前端提升营七天学习总结
查看>>
unix文件描述符
查看>>
HTML5设备传感器总结
查看>>
JVM系列-04-JDK自带的管理分析工具
查看>>
videojs系列之二-完善一点点
查看>>
Safari 10默认禁用Flash插件
查看>>
7道常见的数据分析面试题
查看>>
Go语言很好很强大,但我有几个问题想吐槽
查看>>
工作的未来:敏捷人士瑞典大会上午议程回顾
查看>>
“认知计算”如何有效释放数据价值
查看>>
采访与书评 —— 《BDD In Action》
查看>>
Java永久代去哪儿了
查看>>
解读:Java 11中的模块感知服务加载器
查看>>
微软为无服务器架构引入新API管理消费层
查看>>
《Clojure Recipes》书评与问答
查看>>
微服务通信策略
查看>>
Apache Pulsar中的地域复制,第1篇:概念和功能
查看>>