当前位置: 首页 > wzjs >正文

聊城做网站lcbywl优化落实新十条措施

聊城做网站lcbywl,优化落实新十条措施,快递网站推广怎么做,宁波网站制作公司题目: 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 示例 1: 输入:n 3 输出:[“((()))”,“(()())”,“(())()”,“()(())”,“()()()”] 示例 2&#x…

题目:

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

示例 1:
输入:n = 3
输出:[“((()))”,“(()())”,“(())()”,“()(())”,“()()()”]

示例 2:
输入:n = 1
输出:[“()”]

提示:

1 <= n <= 8

代码:

// 回溯法求解
#define MAX_SIZE 1430  // 卡特兰数: 1, 1, 2, 5, 14, 42, 132, 429, 1430
void generate(int left, int right, int n, char *str, int index, char **result, int *returnSize) {if (index == 2 * n) { // 当前长度已达2nresult[(*returnSize)] =  (char*)calloc((2 * n + 1), sizeof(char));strcpy(result[(*returnSize)++], str);return;}// 如果左括号数量不大于 n,可以放一个左括号if (left < n) {str[index] = '(';generate(left + 1, right, n, str, index + 1, result, returnSize);}// 如果右括号数量小于左括号的数量,可以放一个右括号if (right < left) {str[index] = ')';generate(left, right + 1, n, str, index + 1, result, returnSize);}
}
/*** Note: The returned array must be malloced, assume caller calls free().*/
char** generateParenthesis(int n, int *returnSize) {char *str = (char*)calloc((2 * n + 1), sizeof(char));char **result = (char **)malloc(sizeof(char *) * MAX_SIZE);*returnSize = 0;generate(0, 0, n, str, 0, result, returnSize);return result;
}

代码分析:

  1. 借助calloc函数,分配了一块内存空间。这块空间的大小是2n+1个char类型所占的字节数,其用途是存储长度为2n的字符串,多出来的 1 个字节是为字符串结束符\0准备的。由于使用的是calloc函数,分配的内存会被初始化为 0,这就保证了字符串结束符\0已经处于正确的位置。
  2. generateParenthesis 函数
    初始化一个存储临时括号组合的字符串str
    分配一个大小为MAX_SIZE的二维数组result,用于存储所有有效组合
    调用回溯函数generate开始生成
    返回存储结果的数组指针
  3. generate 函数
    递归终止条件:当字符串长度达到2n时,复制当前组合到结果数组
    递归过程:
    如果左括号数量不足 n,添加左括号并递归
    如果右括号数量小于左括号,添加右括号并递归
  4. 对于括号生成问题,卡特兰数的意义在于:n 对括号的有效组合数量恰好等于第 n 个卡特兰数。例如:
    n=1 时,有效组合为[“()”],数量为 1
    n=2 时,有效组合为[“(())”, “()()”],数量为 2
    n=3 时,有效组合为[“((()))”, “(()())”, “(())()”, “()(())”, “()()()”],数量为 5
    卡特兰数在组合数学中有多种应用场景,括号生成问题是其中的经典案例。这是因为有效括号组合需要满足:
    每个前缀中左括号数量不少于右括号
    整体左右括号数量相等

    这种结构约束与卡特兰数的组合意义完全匹配。
  5. 时间复杂度:O (Cₙ),其中 Cₙ是第 n 个卡特兰数。每个有效组合需要 O (n) 时间生成,总时间为 O (n・Cₙ)
    空间复杂度:O (n・Cₙ),主要用于存储所有组合结果
http://www.dtcms.com/wzjs/54203.html

相关文章:

  • 上海专业高端网站建设服务器注册网站怎么注册
  • 冲压加工瑞安有做网站吗网络推广是干嘛的
  • 一个网站开发的假设目前引流最好的app
  • 用ps做零食网站模板如何找客户资源
  • 仿网站出售便民信息微信平台推广
  • 网站搜索引擎收录南宁百度seo软件
  • 东莞网站排名优化费用深圳市社会组织总会
  • 嘉兴南湖区建设局网站深圳seo公司助力网络营销飞跃
  • 低价网站建设百度建站云南服务中心
  • 二手交易网站建设方案重庆黄埔seo整站优化
  • 类似58同城网站建设多少钱关键词
  • 网站访问权限google搜索引擎免费入口
  • 设计素材网站推荐ppt阿里云域名注册万网
  • 威海网站开发b站推广入口2022
  • 云南省建设厅官网seo长尾关键词优化
  • 做网站包括服务器么上海seo网站推广公司
  • 怎么做购物平台网站游戏搜索风云榜
  • 石家庄网站建设招聘如何在各种网站投放广告
  • 2017自己做网站的趋势南昌搜索引擎优化
  • 湖南人文科技学院录取查询上海不限关键词优化
  • 网站建设公司企业模板深圳网站建设公司排名
  • 房地产开发网站建设佛山seo教程
  • 点的排版设计网站郑州高端网站建设
  • 惠州b2b网站建设淘宝seo 优化软件
  • 企业营销网站建设费用广东最新新闻
  • 传播文化有限公司网站建设一键建站
  • 做网站好的书网络促销的方法有哪些
  • 做网站.cn好还是.com好旅游营销推广方案
  • 常州做网站多少钱做引流的公司是正规的吗
  • 高端网站建设网络媒体发稿