LeetCode (力扣) 22. Generate Parentheses (C) - Medium

Anaconda/Miniconda的删除和安装 要在 MacBook 上删除 Anaconda 或 Miniconda,并重新安装它,您可以按照以下步骤进行操作。 阅读详情

同步发于 JuzerTech 网站,里面有我软、硬件学习的纪录与科技产品开箱,欢迎进去观看。

题目为给定一个数字 n ,列出 n 组 ( ) 的所有排列方式。

 

题目与范例如下

Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.

Example 1:

Input: n = 3
Output: ["((()))","(()())","(())()","()(())","()()()"]
Example 2:

Input: n = 1
Output: ["()"]

Constraints:

1 <= n <= 8


 

解题策略为透过递归 ( Recursion ) , 添加 ' ( ' 与 ' ) ' , 添加 ' ( ' 时检查数目是否过半 ,添加 ' ) ' 时检查是否超过 ' ( ' 的数目。

 

下方为我的代码

/**
 * Note: The returned array must be malloced, assume caller calls free().
 */

char **relist;
int total,base;

void RGenerate(char *tempstr,int position,int leftnum,int rightnum,int max){
    
    if(position == max){
        tempstr[position] = '\0';                       // End String
        if(total==base){
            base*=2;
            relist=realloc(relist,sizeof(char *)*base);
        }
        relist[total] = (char*)malloc(max+1);
        strcpy(relist[total],tempstr);
        total++;
    }
    
    if(leftnum < (max/2)){
        tempstr[position] = '(';
        RGenerate(tempstr,position+1,leftnum+1,rightnum,max);
    }
    if(rightnum<leftnum){
        tempstr[position] = ')';
        RGenerate(tempstr,position+1,leftnum,rightnum+1,max);
    }
}

char ** generateParenthesis(int n, int* returnSize){
    total = 0;
    base = 8;
    relist = (char**)malloc(sizeof(char*)*base);
    char *tempstr = (char*)malloc(sizeof(char)*n*2+1);
    RGenerate(tempstr,0,0,0,n*2);
    (*returnSize) = total;
    return relist;
}

 

下方为时间与空间之消耗

Runtime: 0 ms, faster than 100.00% of C online submissions for Generate Parentheses.

Memory Usage: 6.4 MB, less than 95.68% of C online submissions for Generate Parentheses.

 

从开通VPS到搭建宝塔面板全教程 你在输入域名(此时我们可能没有类似aaa.com这样的域名,所以要输入VPS的IP地址)的时候,下面的根目录也会跟着变动,等输入完成后,你可以把根目录再改回成/www/wwwroot/dq。这时,在你的浏览器中,输入外网面板地址的URL,输入username和password,即可登陆宝塔面板。第一次登陆,需要绑定你的宝塔账号,你可以到宝塔的注册界面,用手机注册一个,然后绑定,首先看一下你的VPS操作系统是什么类型的(其实你在选择VPS的时候,就已经选定了,我选择的事Centos系统)。 阅读详情

相关推荐

中国1986-2024年30米分辨率年最大NDVI数据集:条带修复技术与植被动态监测

本文介绍了中国1986-2024年30米分辨率年最大NDVI数据集的构建,重点阐述了针对Landsat 7 SLC-off故障等问题的条带修复技术。通过应用GapFill等核心算法,该数据集有效修复了数据缺失,为长时间序列的植被动态监测、生态变迁分析和极端气候事件评估提供了高质量、连续可靠的数据基础。

weixin_29200485的博客 168

leetCode力扣之Generate Parentheses

Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.For example, given n = 3, a solution set is:[ "((()))", "(()())", "(())()", "()(())", "...

LeeWei 354

EWM与SAP ERP的数据集成

1、EWM与 SAPERP的无缝集成-基础数据&业务交易数据 2、SAP ERP设置:连接SAP ERP和EWM必须设置应用程序连接支持-ALE(Application Link Enabling) 3、ERP - EWM仓库数据集成: SAP ERP需要设置配置信息,连接ERP和EWM之间的库存管理应用,基于工厂+库存地点对应一个仓库号来进行配置; 在ERP中需要创建一个中间虚拟仓库,代表ERP仓库;“中间虚拟”仓库创建之后,工厂+库存地点的信息...

weixin_43899798的博客 3797

LeetCode c语言-Generate Parentheses和买票找零问题

Title: Givennpairs of parentheses, write a function to generate all combinations of well-formed parentheses. For example, givenn= 3, a solution set is: [ "((()))", "(()())"...

weixin_34378969的博客 338

kubernetes rook 安装 cephfs

ceph root kubernete osd uuid partuuid

天津托的博客 1543

深度残差网络的无人机多目标识别

深度残差网络的无人机多目标识别 人工智能技术与咨询 来源:《图学学报》。作者翟进有等 摘要:传统目标识别算法中,经典的区域建议网络(RPN)在提取目标候选区域时计算量大,时间复杂度较高,因此提出一种级联区域建议网络(CRPN)的搜索模式对其进行改善。此外,深层次的卷积神经网络训练中易产生退化现象,而引入残差学习的深度残差网络(ResNet),能够有效抑制该现象。对多种不同深度以及不同参数的网络模型进行研究,将两层残差学习模块与三层残差学习模块结合使用,设计出一种占用内存更小、时间复杂度更低的新型多捷.

m0_62870606的博客 3112

LeetCode 22. 括号生成 Generate Parentheses(C语言)

题目描述: 给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。 例如,给出 n = 3,生成结果为: [ “((()))”, “(()())”, “(())()”, “()(())”, “()()()” ] 题目解答: 方法1:回溯算法 for循环+递归。记录当前用的左括号数目bef及未成对的左括号数目single,根据这两个数字可以计算出当前用了多少个...

hang404的博客 2344

光耦CTR参数实战:如何避免误触发与功耗陷阱(附计算公式)

本文深入解析光耦CTR参数在电路设计中的关键作用,探讨如何平衡误触发风险与功耗表现。通过TLP521、PC817等常见型号的实测数据对比,提供不同工作状态下的选型策略和计算公式,帮助工程师优化设计,提升系统稳定性和能效。

2a4s6d8f0g的博客 323

22. Generate Parentheses(C++ 和 Java 回溯法求解)

Givennpairs of parentheses, write a function to generate all combinations of well-formed parentheses. For example, givenn= 3, a solution set is: [ "((()))", "(()())", "(())()", "()(())", "()()()" ] 解题思路: 初看题目,以为是利用栈求解,然而,仔细思考后,是采用回溯法(...

m0_37536878的博客 479

基于粒子群算法优化的灰色预测模型GM实现数据预测(附带MATLAB代码)

灰色预测模型(Grey Model,简称GM)是一种常用的非线性时间序列预测方法,它在处理少量数据和缺乏规律性的序列预测问题上表现出良好的性能。c. 建立灰色微分方程:根据紧邻均值生成序列建立灰色微分方程,通常形式为:dx(n) + ax(n) = b,其中dx(n)是紧邻均值生成序列,x(n)是原始序列。为了提高GM模型的预测准确性,我们将使用粒子群算法来优化灰色微分方程的参数a和b。a. 利用灰色微分方程进行预测:根据已得到的灰色微分方程,进行后续时间点的数据预测。首先,定义了两个函数。

CoderExtra的博客 607

013:无人机航线规划的概念

航线规划是无人机任务规划的核心环节,它决定了无人机在整个任务执行过程中的飞行路径。航线规划需要考虑多种因素,包括飞行时间、飞行距离、能源消耗、飞行安全等。

qq_31762031的博客 2443

Generate Parentheses

/*模型:()()() 3(左括号数量L),3(右括号数量R)               2,3 (       1,3(               )2,2    0,3(     )1,2         (1,2    0,2(     )1,1    0,2(      )1,1    0,1)     )0,1    0,1)      (0,1    0,0)     )0,0  ...

yangzhuhappy的博客 426

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

[LeetCode] 022. Generate Parentheses (Medium) (C++/Java/Python)

[LeetCode] 022. Generate Parentheses (Medium) (C++/Java/Python)

水果君の日常 2056

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Leetcode刷题记——22. Generate Parentheses(生成括号)

一、题目叙述: Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses. For example, given n = 3, a solution set is: [ "(((

爱胡椒的小白兔呢 585

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

[leetcode] 22. Generate Parentheses

Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses. For example, given n = 3, a solution set is: "((()))", "(()())", "(())()", "()(())",

TstsUgeg的博客 437

22. Generate Parentheses

Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses. For example, given n = 3, a solution set is: "((()))", "(()())", "(())()", "()(())", "()()

zhouyanz的博客 252

LeetCode 22 — Generate Parentheses(C++ Java Python)

题目:http://oj.leetcode.com/problems/generate-parentheses/ Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses. For example, given n = 3, a solut

龙之梦 4673

LeetCode 22 Generate Parentheses (C,C++,Java,Python)

Problem: Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses. For example, given n = 3, a solution set is: "((()))", "(()())", "(())()", "

算法之道 2381

leetcode之 Generate Parentheses

题目:http://oj.leetcode.com/problems/generate-parentheses/ 描述:给定一个非负整数n,生成n对括号的所有合法排列。 解答: 该问题解的个数就是卡特兰数,但是现在不是求个数,而是要将所有合法的括号排列打印出来。        该问题和《编程之美》的买票找零问题一样,通过买票找零问题我们可以知道,针对一个长度为2n的合法排列,第1到2n个位

姚光超的专栏 2万+

LeetCode (力扣) 10. Regular Expression Matching ( C ) - Hard - 递归法

同步发于JuzerTech网站,里面有我软、硬件学习的纪录与科技产品开箱,欢迎进去观看。

JuzerTech的博客 737

LeetCode 1. Two Sum C 语言解题

同步发于 JuzerTech 网站,里面有我软、硬件学习的纪录与科技产品开箱,欢迎进去观看。 题目为输入一串数列,要寻找两个数字相加与目标值相同的数,并回传它们的位置。 原文题目如下 Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target. You may assume that each input woul

JuzerTech的博客 350

LeetCode (力扣) 20. Valid Parentheses (C) - Easy

同步发于JuzerTech网站,里面有我软、硬件学习的纪录与科技产品开箱,欢迎进去观看。

JuzerTech的博客 293

LeetCode (力扣) 23. Merge k Sorted Lists (C) - Hard

同步发于JuzerTech网站,里面有我软、硬件学习的纪录与科技产品开箱,欢迎进去观看。 这题是 LeetCode 21. Merge Two Sorted Lists 的延伸,把两个链表 ( Linked List ) 增加到多个。 把多个链表 ( Linked List ) 依照大小排序,串接在一起,并回传串接完的 Linked List。 题目与范例如下 You are given an array of k linked-lists lists, each linked-list i..

JuzerTech的博客 255

LeetCode (力扣) 12. Integer to Roman ( C ) - Medium - 暴力解

同步发于JuzerTech网站,里面有我软、硬件学习的纪录与科技产品开箱,欢迎进去观看。

JuzerTech的博客 244

LeetCode (力扣) 16. 3Sum Closest (C) - Medium 暴力解、双指标( Merge Sort )、双指标( Quick Sort )

同步发于JuzerTech网站,里面有我软、硬件学习的纪录与科技产品开箱,欢迎进去观看。

JuzerTech的博客 240
上一篇: LeetCode (力扣) 21. Merge Two Sorted Lists (C) - Easy
下一篇: LeetCode (力扣) 23. Merge k Sorted Lists (C) - Hard
JuzerTech
博客等级 码龄6年 7粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值