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

在线免费视频网站推广网页制作app

在线免费视频网站推广,网页制作app,手把手教你做网站7,室内设计师网站大全思路:dfs回溯 其实这道题看起来很像栈,但考虑到多种可能方案输出,我们需要用dfs来做。 乍一看好像没啥思路。我们可以从括号的特点入手,括号我们知道都是成对存在的,那么无论多少对括号,其实第一个符号肯…

思路:dfs回溯

其实这道题看起来很像栈,但考虑到多种可能方案输出,我们需要用dfs来做。

乍一看好像没啥思路。我们可以从括号的特点入手,括号我们知道都是成对存在的,那么无论多少对括号,其实第一个符号肯定是'(',而最后一个符号肯定是')'。剩下的,我们就可以认为是在这个大括号里面进行排序了。

排序的时候我们需要注意三个点,其实就是dfs剪枝需要注意的三个点:

第一,当‘(’的个数比‘)’的个数少的时候,证明我们没有正确的括号来匹配了,也就是无效,这时不能匹配括号;

第二,当‘(’的个数要大于所给n的时候,说明我们的括号符号超过了,不能匹配;

第三,当')'的个数要大于所给n的时候,同理,不能匹配。

这样,我们再进行选择符号。

dfs中需要这么几个参数,string字符串:记录可能结果,用来存入集合当中;num1,num2分别表示'('和')'的个数;n是所给的括号对数。

针对于大括号中的每一个位置,我们都需要抉择是选择‘(’还是')',不能不选。

这里首先就默认为字符串里面有第一个字符'('了。

最后在满足条件的情况下,再加入')',之后存入集合才是正确的。因为这里dfs中我的'('个数是1,而')'个数是0,而不是1(有些人会想着把num2设置成1,其实也可以,改变一下满足条件即可)。

class Solution {List<String>list=new ArrayList<>();public List<String> generateParenthesis(int n) {StringBuilder buf=new StringBuilder();buf.append("(");dfs(buf,n,1,0);return list;}public void dfs(StringBuilder buf,int n,int num1,int num2){if(num1>n)return;if(num2>n)return ;if(num1<num2)return;if(num1+num2==n*2-1){buf.append(")");list.add(buf.toString());buf.deleteCharAt(buf.length()-1);return ;}buf.append(")");dfs(buf,n,num1,num2+1);buf.deleteCharAt(buf.length()-1);buf.append("(");dfs(buf,n,num1+1,num2);buf.deleteCharAt(buf.length()-1);}
}

http://www.ysxn.cn/news/210.html

相关文章:

  • 幸运28网站开发代写平台
  • 用什么做网站开发时空seo助手
  • 美女图片网站源码商业版本带数据全站生成html_带采集功能企业网站制作与维护
  • 个人网站可以做淘宝客嘛百度seo优化培训
  • 安源网站建设十大经典营销案例
  • shopify独立站建站seo搜索引擎优化人才
  • 莱州网站设计市场调研方案
  • 桂林网站建设找骏程网络营销的现状分析
  • 赣州专业做网站社交媒体营销三种方式
  • 东莞网站建设-信科网络电商seo优化是什么
  • 做网站犯法seo关键词排名教程
  • 全网分销平台seo去哪里培训
  • 女性网站流量排名seo教程有什么
  • 建设网站的申请信用卡吗品牌营销策略四种类型
  • 贵州省省建设厅网站企业网络营销
  • 外网代理服务器网站网络营销的含义的理解
  • 做相册的网站(网易免费网络推广软件有哪些
  • 网站建设和优化成都网站建设方案托管
  • 会HTML怎么做网站电商网站定制开发
  • 公司变更流程排名优化百度
  • 平面设计培训班要学多久seo推广一个月见效
  • 做网咖的网站小学培训机构
  • wordpress插件客服seo专业学校
  • mac wordpress建站教程视频长春网站建设模板
  • 论坛外链代发橘子seo
  • 做网站客户要求多很烦宁波seo快速排名
  • wordpress 个人网站汕头seo推广
  • 虹口手机网站制作太原网站推广公司
  • 交互设计网站案例百度指数的网址
  • 网站滚动扁图片外包客服平台