返回

#yyds干货盘点# 面试必刷TOP101:括号生成

发布时间:2022-11-26 20:17:27 259
# java# java# 数据

1.简述:

描述

给出n对括号,请编写一个函数来生成所有的由n对括号组成的合法组合。

例如,给出n=3,解集为:

"((()))", "(()())", "(())()", "()()()", "()(())"

数据范围:#yyds干货盘点# 面试必刷TOP101:括号生成_代码实现

要求:空间复杂度 #yyds干货盘点# 面试必刷TOP101:括号生成_代码实现_02,时间复杂度 #yyds干货盘点# 面试必刷TOP101:括号生成_空间复杂度_03

示例1

输入:

1

返回值:

["()"]

示例2

输入:

2

返回值:

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

2.代码实现:

import java.util.*;
public class Solution {
public void recursion(int left, int right, String temp, ArrayList res, int n){
//左右括号都用完了,就加入结果
if(left == n && right == n){
res.add(temp);
return;
}
//使用一次左括号
if(left < n){
recursion(left + 1, right, temp + "(", res, n);
}
//使用右括号个数必须少于左括号
if(right < n && left > right){
recursion(left, right + 1, temp + ")", res, n);
}
}
public ArrayList generateParenthesis (int n) {
//记录结果
ArrayList res = new ArrayList();
//递归
recursion(0, 0, "", res, n);
return res;
}
}

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线