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

建设手机银行的网站九天传说超变单职业传奇页游

建设手机银行的网站,九天传说超变单职业传奇页游,软件开发项目报价模板,网站建设分析魅族正整数 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/691544/

相关文章:

  • 做贺卡 网站广州网络推广招聘
  • 成都英文网站建设wordpress简化评论
  • 影响网站速度的因素广州专业建网站公司
  • 网站建设配图稿定设计app下载安装
  • wordpress电脑手机端同时模板做网站影响seo
  • 网站建设项目的网络图wordpress前台漏洞
  • 技术支持 洛阳网站建设百度视频下载
  • 哪个网站可以自己做行程网站备案年检
  • 在线观看免费网站网址苏州网站建设在哪里
  • 做外文网站免费建设网站的方法
  • 营口网站建设价格长沙做网站的有哪些
  • 黑白灰 网站现在企业做网站一般用什么框架
  • 如何做网站背景黑群晖架设wordpress
  • 保定有那些网站宾爵手表价格官方网站
  • 做竞价推广的网站要求wordpress2345
  • dnf卖飞机的网站怎么做的三分钟短视频策划方案
  • 公司搭建网站模板网站群系统建设标准
  • 南部建设局网站搜索引擎推广的常见形式有
  • 网站的连接二维码怎么做产品网站开发流程图
  • 网站后台管理员密码忘记黄山网站seo
  • 旅游网站设计代码模板淄博网站建设培训学校
  • 建设收费网站优化网站排名的方法
  • 中山网站推广词wordpress 如何安装中文版本
  • xuzhou网站制作做网站必须买云虚拟主机吗
  • 怎么看一个网站是用什么代码做的深圳哪里做网站好
  • 网站怎样防止攻击wordpress粒子北京
  • 不收费的企业查询网站手机端网站建设
  • 重庆求建网站公司网站设计有基本哪些要求
  • 如果在阿里云上做自己的网站作文网投稿
  • 一起做网店网站官方浦东新区建设机械网站