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

怎么做可以访问网站电脑培训中心

怎么做可以访问网站,电脑培训中心,如何通过axure做网站,网站制作在哪里的正整数 n 代表生成括号的对数,请设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 示例 1: 输入:n 3 输出:[“((()))”,“(()())”,“(())()”,“()(())”,“()()()”] 示例 2: 输入&#x…

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

示例 1:

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

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

提示:

1 <= n <= 8

法一:直接生成由’(‘和’)'组成的全部可能的字符串,然后再一个一个判断是否合法:

class Solution {
public:vector<string> generateParenthesis(int n) {vector<string> res;string s(2 * n, '\0');getAllParentheses(res, 0, s, n);return res;}private:void getAllParentheses(vector<string> &res, int index, string &s, int n){if (index == 2 * n){if (isValid(s)){res.push_back(s);}return;}s[index] = '(';getAllParentheses(res, index + 1, s, n);s[index] = ')';getAllParentheses(res, index + 1, s, n);}bool isValid(string &s){int cnt = 0;for (char c : s){if (c == '('){++cnt;}else{--cnt;}if (cnt < 0){return false;}}return cnt == 0;}
};

此方法时间复杂度为O(n2 2 n ^{2n} 2n);空间复杂度为O(n),最多递归2n层。很差的方法。

法二:递归求解即可:

class Solution {
public:vector<string> generateParenthesis(int n) {vector<string> res;int leftParenthesisNum = 0;string s(2 * n, '0');getParentheses(res, 0, 0, 0, s, n);return res;}private:void getParentheses(vector<string> &res, int leftNumAll,int finishNum, int index, string &s,int n){if (index == 2 * n){res.push_back(s);}if (leftNumAll < n){s[index] = '(';getParentheses(res, leftNumAll + 1, finishNum, index + 1, s, n);}if (finishNum < leftNumAll){s[index] = ')';getParentheses(res, leftNumAll, finishNum + 1, index + 1, s, n);}}
};

在这里插入图片描述
法三:我们可以把生成的结果看做(a)b,其中a和b分别是合法括号串。我们枚举每个右括号,分别计算枚举过程中a和b的内容,并且可以把特定长度的a和b的内容缓存下来:

class Solution {
public:vector<string> generateParenthesis(int n) {vector<vector<string>> cache(9);cache[0] = {""};return generate(n, cache);}private:vector<string> generate(int n, vector<vector<string>> &cache){if (cache[n].size() != 0){return cache[n];}vector<string> cur;for (int i = 0; i < n; ++i){vector<string> left = generate(i, cache);vector<string> right = generate(n - 1 - i, cache);for (string &sleft : left){for (string &sright : right){cur.push_back("(" + sleft + ")" + sright);}}cache[n] = cur;}return cache[n];}
};

在这里插入图片描述

http://www.dinnco.com/news/13243.html

相关文章:

  • 网站如何改首页模块网奇seo赚钱培训
  • 黄埔网站建设 信科网络文件外链生成网站
  • 佛山p2p网站建设广州seo运营
  • 温州网站建设方案在线网站建设
  • 一般网站开发的硬件要求关键词挖掘查询工具
  • 梁朝伟做汤唯视频网站网络营销推广渠道
  • 手机网站建设团队培训心得体会
  • 如何做网站链接广东东莞疫情最新消息
  • 英国做暧小视频网站惠州疫情最新情况
  • 网站的域名和密码是什么意思seo公司 上海
  • 网站建设公司特点seo排名点击软件
  • 手机端网站开发要注意什么舆情网站
  • 网络设计课程设计前言seo网站外链工具
  • 如何把网站免费做靠前企业培训机构排名前十
  • 网站开发计划时间如何在百度发布短视频
  • 天门市住房和城乡建设网站百度小说排行榜第一名
  • 什么是网页站点在线seo
  • 专业医疗建站seo怎么做排名
  • 做柱状图饼状图好看的网站常州seo收费
  • 山东临朐门户网站哪个软件可以自动排名
  • 网站如何做滚动效果北京培训学校
  • 电商免费网站入口典型的网络营销案例
  • 有没有接做网站私活的平台网络推广的工作内容是什么
  • 软件下载网站如何履行安全管理义务浏览器打开
  • 石家庄网络科技有限公司排行seo专业知识培训
  • 论坛备案网站名称网络优化工程师主要做什么
  • 做房产的网站百度怎么精准搜关键词
  • 做网站非法吗网站推广和优化的原因网络营销
  • 公众号自己做电影网站百度网站收录提交
  • html5做网站的好处重庆seo排名电话