栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【LeetCode】Day43-括号生成

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【LeetCode】Day43-括号生成

题目

22. 括号生成【中等】

题解

“排列” 类型的题要想到 回溯法

利用左右括号的数目解题是这题最好理解的一种解法:

  1. 左括号数目 添加“(”
  2. 右括号数目<左括号数目
    添加“)”
  3. 终止条件
    (1)右括号数目>左括号数目,这时肯定不是有效括号了,返回
    (2)右括号数目==左括号数目==n,完成一组括号排列,返回
  4. 回溯的时候删掉末尾的括号,重来
class Solution {
    private Listres=new ArrayList<>();
    public List generateParenthesis(int n) {
        backtracking(n,0,0,"");
        return res;
    }
    public void backtracking(int n,int left,int right,String str){
        if(right>left)
            return;
        else if(right==n&&left==n){
            res.add(str);
            return;
        }
        if(left 

时间复杂度: O ( 4 n / n ) O(4^n/sqrt{n}) O(4n/n ​)

空间复杂度: O ( n ) O(n) O(n),最多递归2n次,递归栈所需的空间

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/821892.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号