Degenerate_generate动词

Degenerate_generate动词22. Generate Parentheses C++回溯法

大家好,又见面了,我是你们的朋友全栈君。

把左右括号剩余的次数记录下来,传入回溯函数。

判断是否得到结果的条件就是剩余括号数是否都为零。

注意判断左括号是否剩余时,加上left>0的判断条件!否则会memory limited error!

判断右括号时要加上i==1的条件,否则会出现重复的答案。

同样要注意在回溯回来后ans.pop_back()

class Solution {
public:
    void backTrack(string ans, int left, int right, vector<string>& res)
    {
        if(left==0 && right==0)
        {
            res.push_back(ans);
            
        }
        else
        {
            for(int i=0;i<2;i++)
            {
                if(i==0 && left>0)
                {
                    ans.push_back('(');
                    backTrack(ans,left-1,right,res);
                    ans.pop_back();
                }
                else
                {
                    if(i == 1 && right>left && right>0)
                    {
                        ans.push_back(')');
                        backTrack(ans,left,right-1,res);
                       ans.pop_back();
                    }
                }
            }
        }
    }
    vector<string> generateParenthesis(int n) {
        vector<string> res;
        string ans;
        backTrack(ans,n,n,res);
        return res;
    }
};

Degenerate_generate动词

 

转载于:https://www.cnblogs.com/tornado549/p/9990169.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

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


相关推荐

  • Java内存映射原理与实现

    Java内存映射原理与实现Java虚拟机规范中定义了Java内存模型(JavaMemoryModel,JMM),用于屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的并发效果,JMM规范了Java虚拟机与计算机内存是如何协同工作的:规定了一个线程如何和何时可以看到由其他线程修改过后的共享变量的值,以及在必须时如何同步的访问共享变量。

    2022年6月21日
    32
  • linux 大总结[通俗易懂]

    linux 大总结[通俗易懂]1.Linux介绍Linux内核最初只是由芬兰人林纳斯·托瓦兹(LinusTorvalds)在赫尔辛基大学上学时出于个人爱好而编写的。Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。Linux能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。目前市面上较

    2022年6月7日
    44
  • 5分钟商学院之个人篇–演讲能力和沟通能力

    1.演讲能力1.1认知台阶影响力是成为领导的必要条件,而演讲是实现影响力最重要的方法之一经常有人说,全天下最难的两件事:一是把钱从别人的口袋里掏出来,二是把想法塞到别人的脑海中去。这个说法不

    2021年12月30日
    48
  • uboot之—make smdk2410_config命令详细解析

    uboot之—make smdk2410_config命令详细解析

    2022年2月22日
    41
  • SparkStreaming之foreachRDD

    SparkStreaming之foreachRDD首先我们来对官网的描述了解一下。DStream中的foreachRDD是一个非常强大函数,它允许你把数据发送给外部系统。因为输出操作实际上是允许外部系统消费转换后的数据,它们触发的实际操作是DStream转换。所以要掌握它,对它要有深入了解。下面有一些常用的错误需要理解。经常写数据到外部系统需要创建一个连接的object(eg:根据TCP协议连接到远程的服务器,我们连接外部数据库需要自己的句柄

    2022年6月15日
    44
  • 什么是CPU密集型、IO密集型?「建议收藏」

    什么是CPU密集型、IO密集型?「建议收藏」CPU密集型(CPU-bound)CPU密集型也叫计算密集型,指的是系统的硬盘、内存性能相对CPU要好很多,此时,系统运作大部分的状况是CPULoading100%,CPU要读/写I/O(硬盘/内存),I/O在很短的时间就可以完成,而CPU还有许多运算要处理,CPULoading很高。在多重程序系统中,大部份时间用来做计算、逻辑判断等CPU动作的程序称之CPUbound。例如一个计……

    2025年11月7日
    2

发表回复

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

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