leetcode 回溯算法_java生成带括号的算术题

leetcode 回溯算法_java生成带括号的算术题原题链接数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。示例 1:输入:n = 3输出:[“((()))”,”(()())”,”(())()”,”()(())”,”()()()”]示例 2:输入:n = 1输出:[“()”] 提示:1 <= n <= 8题解回溯class Solution {public: vector<string>res; string t = “”; voi

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

原题链接
数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。

示例 1:

输入:n = 3
输出:["((()))","(()())","(())()","()(())","()()()"]
示例 2:

输入:n = 1
输出:["()"]
 

提示:

1 <= n <= 8

题解
回溯

class Solution { 
   
public:
    vector<string>res;
    string t = "";
    void dfs(int u,int num,int len){ 
   
        if(u == len && num == len){ 
   
            res.push_back(t);
            return;
        }
        if(u < len){ 
   
            t.append(1,'(');
            dfs(u + 1,num,len);
            t.erase(t.size() - 1,1);
        }
        if(num < u){ 
   
            t.append(1,')');
            dfs(u,num + 1,len);
            t.erase(t.size() - 1,1);
        }
    }
    vector<string> generateParenthesis(int n) { 
   
        dfs(0,0,n);
        return res;
    }
};
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/168725.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 使用内存盘加快开发效率 (UltraRAMDisk,Jetbrains Idea,java)

    使用内存盘加快开发效率 (UltraRAMDisk,Jetbrains Idea,java)环境:Windows1020H2IntelliJIDEA2020.2.4x64JDK1.8内存盘软件:内存盘软件ultraramdisk官方地址CSDN资源链接://TODO硬件:i797001TB机械盘ddr426668G*2步骤0:内存大小根据实际内存去分配合理的大小动态分配内存根据需要备份和恢复根据自身需要,(关机速度会很慢内存盘内所有数据会写入到该镜像文件内)步骤1:我这边是选择直接将已有的idea软件…

    2022年5月7日
    45
  • Linux系统(根目录下)目录介绍

    Linux系统(根目录下)目录介绍1./bin目录/bin目录包含了引导启动所需的命令或普通用户可能用的命令(可能在引导启动后)。这些命令都是二进制文件的可执行程序(bin是binary–二进制的简称)

    2022年7月2日
    31
  • 日语自动词和他动词是什么意思_日语自动词他动词总结

    日语自动词和他动词是什么意思_日语自动词他动词总结http://coffeejp.com/bbs/thread-182243-1-1.html自动词:强调自发的行为他动词:强调他人驱使的行为拿到两个动词后按照它们的构词形式可以进行区分,基本可以分为4种方法(1)两个动词都以「る」结尾时:看「る」前的那个假名(汉字除外),如果是「あ」段假名,一般是自动词;如果是「え」段假名,一般是他动词(2)两个动词一个以「る」结尾,另一个不是以「る」结尾…

    2022年10月29日
    0
  • rpm卸载多个有依赖的rpm包[通俗易懂]

    rpm卸载多个有依赖的rpm包[通俗易懂][root@devOOo_3.1.0_src]#rpm-qlibxml2[root@devOOo_3.1.0_src]#rpm-qalibxml2*[root@dev~]#rpm-qa|greplibxml2libxml2-python-2.6.26-2.1.12libxml2-devel-2.6.26-2.1.12libxml2-2.6.26libxm…

    2022年9月22日
    0
  • 数据挖掘技术功能有哪些[通俗易懂]

    数据挖掘技术功能有哪些[通俗易懂]  与传统数据分析不同的是,数据挖掘技术在对信息进行挖掘和发现知识的过程中,没有明确的假设。它通过分析历史数据,建立数据模型,以预测未来的趋势和行为,并对此作出预测性判断。从庞大的数据库中发现隐藏的、有价值的信息是进行数据挖掘的主要目的,它的主要功能有:  1、能够预测未来趋势和行为的功能  以前需要进行大量手工分析的问题,现在运用数据挖掘技术就能够自动地在数据库中查找预测信息,并可以依据数据迅速地得出结论。就像预测销售金额一样,可以利用数据挖掘技术对以前促销的全部数据进行分析,就基本上可以锁定未来

    2022年6月29日
    20
  • C语言中的选择排序

    C语言中的选择排序文章目录前言一、选择排序1.计算素组元素个数2.选择排序基本逻辑(例子是从大到小排列)3.具体实现1.外层循环:决定大回合个数每个大回合决出一个席位2.内层循环:决定小回合个数每个小回合进行1V1大战实力强的为擂主直至最后一位挑战者3.两个元素值的交换总结前言在C语言中用来解决排序问题的常见方法有选择排序和冒泡排序两种一、选择排序先上代码:1.计算素组元素个数通过sizeof()计算数组全体元素占空间的大小再去除以一个元素占空间的大小即可得到元素个数。2.选择排序基本

    2022年6月25日
    20

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号