Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >穷举vs暴搜vs深搜vs回溯vs剪枝系列一>括号生成

穷举vs暴搜vs深搜vs回溯vs剪枝系列一>括号生成

作者头像
用户11305962
发布于 2025-01-13 00:33:16
发布于 2025-01-13 00:33:16
5100
代码可运行
举报
文章被收录于专栏:学习学习
运行总次数:0
代码可运行

题目: 


解析:  

该题:


 1.决策树: 


2.代码设计: 

2.1.全局变量: 


2.2. 


代码: 

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
private List<String> ret;
    private int left,n,right;
    private StringBuffer path;
    public List<String> generateParenthesis(int _n) {
        n = _n;

        ret = new ArrayList<>();
        path = new StringBuffer();
        dfs();
        return ret;
    } 

    private void dfs(){
        //递归出口
        if(right == n) {
            ret.add(path.toString());
            return;
        }

        /** 
        剪枝写法:
         */ 
        
        //添加左括号
        if(left < n){
            path.append("("); left++;
            dfs();
            //回溯:恢复现场
            path.deleteCharAt(path.length()-1); left--;
        } 

        //添加右括号:右括号永远满足 <= 左括号
        if(right < left) {
            path.append(")"); right++; 
            dfs();
           //回溯:恢复现场
           path.deleteCharAt(path.length()-1); right--;
        }
    }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-01-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
穷举vs暴搜vs深搜vs回溯vs剪枝系列一>字母大小写全排列
用户11305962
2025/01/13
620
穷举vs暴搜vs深搜vs回溯vs剪枝系列一>字母大小写全排列
穷举vs暴搜vs深搜vs回溯vs剪枝系列一>电话号码的字母组合
用户11305962
2025/01/13
270
穷举vs暴搜vs深搜vs回溯vs剪枝系列一>电话号码的字母组合
​301. 删除无效括号
给你一个由若干括号和字母组成的字符串 s ,删除最小数量的无效括号,使得输入的字符串有效。
用户7447819
2021/07/23
7780
穷举vs暴搜vs深搜vs回溯vs剪枝系列一>N 皇后
用户11305962
2025/01/19
590
穷举vs暴搜vs深搜vs回溯vs剪枝系列一>N 皇后
穷举vs暴搜vs深搜vs回溯vs剪枝系列一>组合
用户11305962
2025/01/13
1030
穷举vs暴搜vs深搜vs回溯vs剪枝系列一>组合
穷举vs暴搜vs深搜vs回溯vs剪枝专题一>子集
用户11305962
2025/01/13
1030
穷举vs暴搜vs深搜vs回溯vs剪枝专题一>子集
二叉树中的深度搜索专题一>二叉树的所有路径
用户11305962
2025/06/01
780
二叉树中的深度搜索专题一>二叉树的所有路径
​LeetCode刷题实战301: 删除无效的括号
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !
程序员小猿
2021/07/06
7320
刷题训练之深搜(DFS)-----(二叉树的所有路径,全排列,子集)
给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。
用户11369558
2024/11/20
1830
刷题训练之深搜(DFS)-----(二叉树的所有路径,全排列,子集)
穷举vs暴搜vs深搜vs回溯vs剪枝系列一>
用户11305962
2025/01/13
1230
穷举vs暴搜vs深搜vs回溯vs剪枝系列一>
穷举vs暴搜vs深搜vs回溯vs剪枝专题一>全排列II
用户11305962
2025/01/13
790
穷举vs暴搜vs深搜vs回溯vs剪枝专题一>全排列II
穷举vs暴搜vs深搜vs回溯vs剪枝系列一>组合总和
用户11305962
2025/01/13
570
穷举vs暴搜vs深搜vs回溯vs剪枝系列一>组合总和
【递归与回溯深度解析:经典题解精讲(上篇)】—— LeetCode
解题思路 这是一道典型的 回溯(Backtracking)问题,我们需要枚举所有可能的子集。关键点是每个数字都有两种选择:要么包含,要么不包含。
用户11286421
2025/01/17
3100
【递归与回溯深度解析:经典题解精讲(上篇)】—— LeetCode
穷举vs暴搜vs深搜vs回溯vs剪枝系列一>黄金矿工
用户11305962
2025/02/06
450
穷举vs暴搜vs深搜vs回溯vs剪枝系列一>黄金矿工
【回溯+剪枝】电话号码的字母组合 && 括号生成
​ 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。
利刃大大
2025/02/02
880
【回溯+剪枝】电话号码的字母组合 && 括号生成
LeetCode-22-括号生成
数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。
benym
2022/07/14
2080
搞定大厂算法面试之leetcode精讲11剪枝&回溯
复杂度分析:时间复杂度O(2^2n*n),字符串的长度为2n,每个位置有两种选择,选择左或者右括号,验证字符串是否有效复杂度O(n),剪枝之后会优化,最坏的情况是O(2^2n*n)。空间复杂度O(n),递归次数最多2n
全栈潇晨
2021/11/30
6050
穷举vs暴搜vs深搜vs回溯vs剪枝系列一>单词搜索
用户11305962
2025/02/03
730
穷举vs暴搜vs深搜vs回溯vs剪枝系列一>单词搜索
力扣Hot100刷题日常(最大子数组和,合并区间, 缺失的第一个正数,电话号码的字母组合)
给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
用户11369558
2024/12/24
860
力扣Hot100刷题日常(最大子数组和,合并区间, 缺失的第一个正数,电话号码的字母组合)
算法妙妙屋-------1.递归的深邃回响:全排列的奇妙组合
全排列(Permutation)是数学中一个经典的问题,指的是从一组元素中,将所有元素按任意顺序排列形成的所有可能序列。
hope kc
2025/06/02
1180
算法妙妙屋-------1.递归的深邃回响:全排列的奇妙组合
推荐阅读
相关推荐
穷举vs暴搜vs深搜vs回溯vs剪枝系列一>字母大小写全排列
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档