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

哪个公司制作网站好互联网创业项目平台加盟

哪个公司制作网站好,互联网创业项目平台加盟,河源市seo推广,站长之家查询的网址【题目描述】 数字 n 代表生成括号的对数#xff0c;请你设计一个函数#xff0c;用于能够生成所有可能的并且 有效的 括号组合。 【题目链接】. - 力扣#xff08;LeetCode#xff09; 【解题代码】 package dp;import java.util.ArrayList; import java.util.Arrays; im…【题目描述】 数字 n 代表生成括号的对数请你设计一个函数用于能够生成所有可能的并且 有效的 括号组合。 【题目链接】. - 力扣LeetCode 【解题代码】 package dp;import java.util.ArrayList; import java.util.Arrays; import java.util.List;public class GenerateParenthesis {// 生成的有效括号字符串列表private ListString result;// StringBuilder变量用于生成有效括号字符串private StringBuilder sb;// 左括号数量private int count1;// 右括号数量private int count2;public static void main(String[] args) {long start System.currentTimeMillis();ListString result new GenerateParenthesis().generateParenthesis(3);System.out.println(result Arrays.toString(result.toArray()));System.out.println(函数执行时间: (System.currentTimeMillis() - start) MS);}public ListString generateParenthesis(int n) {// 初始化各个变量result new ArrayList();sb new StringBuilder();count1 0;count2 0;// 有效的括号字符串肯定第一个肯定是左括号generateParenthesis(n, 0);// 返回最终结果return result;}/*** 生成有效括号字符串* param n 有效括号组数量* type当前添加括号的类型0:左括号1右括号**/private void generateParenthesis(int n, int type) {// 当前添加左括号if (type 0) {sb.append(();count1;} else { // 当前添加右括号sb.append());count2;// 右括号数量等于n,说明新的有效括号组完成添加到结果类表中if (count2 n) {result.add(sb.toString());return;}}// 先处理左括号如果左括号数小于n添加左括号if (count1 n) {generateParenthesis(n, 0);// 回溯删除这一层递归函数里添加的左括号并将左括号数减一sb.deleteCharAt(sb.length() - 1);count1--;}// 再处理右括号右括号只能数量小于左括号时才能添加if (count2 count1) {generateParenthesis(n, 1);// 回溯删除这一层递归函数里添加的左括号并将左括号数减一sb.deleteCharAt(sb.length() - 1);count2--;}}}【解题思路】 分析题目仔细思考得到以下几个思路点 所谓有效括号就是最终的左括号数和右括号数一样右括号出现时前面至少有一个左括号能与之匹配也就是右括号的数量必须小于等于已有的左括号数。此道题目可以按照“回溯递归”的方式进行处理 即当前一步添加左括号-然后递归处理下一步-递归回到这一层-然后弹出左括号-然后添加右括号的-然后递归处理下一步。第一步肯定要添加左括号       【解题步骤】 首先要给解题类添加几个成员变量包括最终的结果字符串列表、存储过程字符串的StringBuilder、左右括号的数量等,并在构造函数中进行初始化 // 生成的有效括号字符串列表 private ListString result; // StringBuilder变量用于生成有效括号字符串 private StringBuilder sb; // 左括号数量 private int count1; // 右括号数量 private int count2;public GenerateParenthesis(){// 初始化各个变量result new ArrayList();sb new StringBuilder();count1 0;count2 0; } 定义一个“回溯递归”生成有效括号字符串的函数generateParenthesis传入参数包括有效括号组数量当前添加括号类型 /*** 生成有效括号字符串* param n 有效括号组数量* type当前添加括号的类型0:左括号1右括号**/ private void generateParenthesis(int n, int type) generateParenthesis函数内部第一步根据当前要添加括号类型存储对应的括号字符串并进行计数处理。如果是右括号则判断当前括号组数是否等于n如果等于则将当前字符串加入结果列表中 // 当前添加左括号 if (type 0) {sb.append(();count1; } else { // 当前添加右括号sb.append());count2;// 右括号数量等于n,说明新的有效括号组完成添加到结果类表中if (count2 n) {result.add(sb.toString());return;} } generateParenthesis函数内部第二步下一步递归添加左括号递归完毕后进行回溯 // 先处理左括号如果左括号数小于n添加左括号 if (count1 n) {generateParenthesis(n, 0);// 回溯删除这一层递归函数里添加的左括号并将左括号数减一sb.deleteCharAt(sb.length() - 1);count1--; } generateParenthesis函数内部第二步下一步递归添加右括号递归完毕后进行回溯只有在右括号数量小于左括号的情况下才能添加右括号 // 再处理右括号右括号只能数量小于左括号时才能添加 if (count2 count1) {generateParenthesis(n, 1);// 回溯删除这一层递归函数里添加的左括号并将左括号数减一 sb.deleteCharAt(sb.length() - 1);count2--; } 最后主函数generateParenthesis里调用递归函数从第一个左括号添加开始最后返回结果列表即可 public ListString generateParenthesis(int n) {// 有效的括号字符串肯定第一个肯定是左括号generateParenthesis(n, 0);// 返回最终结果return result; } 【思考总结】 掌握“回溯”回溯算法也叫试探法它是一种系统地搜索问题的解的方法。回溯算法的基本思想是:从一条路往前走能进则进不能进则退回来换一条路再试大的算法框架定下来后 要细心找出业务里面的逻辑关键点这道理题的关键点就在于“只有在右括号数量小于左括号的情况下才能添加右括号”算法优化里要掌握所运用语言库的性能最优方式比如这里字符串处理使用了Java库里面的StringBuilder LeetCode解题之前一定不要看题解看了就“破功”了
http://www.zqtcl.cn/news/557539/

相关文章:

  • 金融互助网站开发网上免费设计效果图
  • 网站开发 例子施工企业质量管理体系应按照我国
  • 义乌建设网站网络营销推广有哪些方法
  • 宿迁建设局网站a类证查询怎么自己搭建梯子
  • 成都网站品牌设计策划网络推广如何收费
  • html5 js全屏滑动网站源码wordpress 插件 破解
  • 做电影网站怎么批量去水印微信用什么小程序可以提取文字
  • 网站开发费用周期域名网站建设方案书模板
  • 织梦网站问题关于政务网站建设工作情况的总结
  • wordpress 拿站网站搭建后如何使用
  • 网站设计应遵循的原则wordpress免费空间
  • 建设网站的特色企业内部培训app软件
  • jsp网站缓存在哪wordpress设置静态页面
  • 百度做网站电话多少东台网页定制
  • 暖通设计网站推荐百度在西安的公司叫什么
  • 天津响应式网站设计网站建设的任务
  • 多语言网站 自助江门建设局网站
  • 宜兴做阿里巴巴网站常州外贸网站设计
  • 长沙米拓建站wordpress最底部版权
  • 小企业网站建设费用一年wordpress 怎么登陆
  • 阿里云建站可不可以备案wordpress评论滑动插件
  • 网站建设教程出售用苏州久远网络现在的网络营销方式
  • 浮动播放器wordpress刷神马seo排名首页排名
  • 建设网站呼叫中心有什么好处站长统计免费下载
  • 做网站电脑配置要求个高吗电子商务网站的建设包含哪些流程图
  • 青岛做网站大公司wordpress文章页加一言
  • 用哪个网站做相册视频文件夹谷歌ads
  • 注册top域名做公司网站男女做暖网站是什么
  • 郴州本地网站建设高端网站设计多少钱
  • 此网站域名即将过期广告制作属于什么行业