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

网站建设教程费用北京新机场建设网站

网站建设教程费用,北京新机场建设网站,wordpress产品调用,个人网站建设 实验报告正整数 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.yayakq.cn/news/39919/

相关文章:

  • 工业和信息化部网站备案近期时事新闻
  • 做问卷调查的是哪个网站好昌吉做网站推广的公司
  • 网站模板怎么设计软件做外贸产品上什么网站
  • 手机网站建站工作室百度人工服务
  • 怎么做网站推广知乎网站开发好的公司推荐
  • 网站注册域名云之创网站建设
  • 海沧网站建设顺德建网站的公司
  • 新网网站空间购买建设部门网站
  • 门户网站营销特点有什么网站做头像
  • 虚拟主机可以做几个网站修改公司网站网页
  • 潍坊网站建设SEO优化电子商务网站建设的好处有哪些
  • 网站没有备案信息该怎么做网络推广产品
  • 沈阳建网站的公司汕头自助建站系统
  • 网站打印模板制作夷陵区住房和城乡建设局网站
  • 恩施网站建设模板wordpress胖鼠采集
  • wordpress多站点换域名中山市做网站
  • 网站模版 优帮云做设计英文网站
  • 有什么做任务的网站吗坦克大战网站开发课程设计报告
  • wordpress要装在根目录深圳搜索seo优化排名
  • 怎么在百度建设一个网站顺德购物网站建设
  • 公司网站设计规范企业网络建设公司排名
  • wordpress企业网站seo虚拟主机销售网站模板
  • 太原市住房和城乡建设局的网站专业建设企业网站
  • 京东网站内容建设k网站建设
  • 杭州自助建站模板下载ssc网站建设教程
  • 深圳市手机网站建设报价做网站策划需要用什么软件
  • 曲阜住房城乡建设局网站个人养老保险查询
  • 建网站策划方案广西建设银行行号查询网站
  • 安徽二建注销网站在哪查询上海有限公司有哪些
  • 做的网站如何防止怕爬虫测网站打开的速度的网址