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

湛江网站设计珠海百度搜索排名优化

湛江网站设计,珠海百度搜索排名优化,怎样创建自己公司网站,上海网站建设 zl文章目录 题目方法一:bfs方法二:dfs 题目 这一题是在207题的基础上,要统计拓扑排序的顺序集合,所以只需要在207的基础上加入一个将拓扑排序的节点输出即可(有环无拓扑排序) 【LeetCode-中等题】207. 课程表…

文章目录

    • 题目
    • 方法一:bfs
    • 方法二:dfs

题目

在这里插入图片描述
在这里插入图片描述
这一题是在207题的基础上,要统计拓扑排序的顺序集合,所以只需要在207的基础上加入一个将拓扑排序的节点输出即可(有环无拓扑排序)
【LeetCode-中等题】207. 课程表

方法一:bfs

相比较207题 ,加入一个数组,用于统计拓扑排序节点,
其中拓扑排序的顺序就为队列的出队顺序
在这里插入图片描述

//方法一  bfs 广度优先public int[] findOrder(int numCourses, int[][] prerequisites) {int[] cou = new int[numCourses];//课程号入度数组int[] num  = new int[numCourses];//用于存储拓扑排序List<List<Integer>> couList = new ArrayList<>();//课程号指向的课程号集合Queue<Integer> queue = new LinkedList<>();//辅助队列 用于处理入度为0 的课程号for(int i = 0 ;i<numCourses ;i++)//给集合中课程号初始化集合couList.add(new ArrayList<Integer>());for(int[] pre : prerequisites){cou[pre[0]]++;//统计各课程的入度couList.get(pre[1]).add(pre[0]);//给集合中课程号设置指向课程的集合}for(int i = 0 ;i<numCourses ;i++){if(cou[i] == 0) queue.offer(i);//搜索第一个入度为0 的课程号  加入队列}int i = 0;//用于将拓扑排序加入到一个数组用的下标while(!queue.isEmpty()){int ids = queue.poll();numCourses--;//取出一个元素  就让课程号总数-1num[i] = ids;//拓扑排序 取出的元素加入到数组for(int cur : couList.get(ids)){//  couList.get(ids) 根据课程号  取出课程号指向的课程  让被指向的课程号入度 -1if(cou[cur] >= 1 ) cou[cur]--;if(cou[cur] == 0 ) queue.offer(cur);//若当前课程号入度为0  则加入队列}i++;}if(numCourses == 0)  return num;else return new int[0];}

方法二:dfs

相比较207题 ,加入一个数组,用于统计拓扑排序节点,
其中使用一个栈来记录遍历完的节点
拓扑排序的顺序就为栈的出栈顺序

// 方法二  dfs 深度优先int[] cou = null;// 设置全局变量  方便dfs使用int[] num = null;List<List<Integer>> couList = null;boolean valid = true;Deque<Integer> queue = null;public int[] findOrder(int numCourses, int[][] prerequisites) {this.cou = new int[numCourses];//课程号标记数组this.queue = new LinkedList<>();//用于配合输出拓扑排序this.num  = new int[numCourses];//用于存储拓扑排序this.couList = new ArrayList<>();//课程号指向的课程号集合for(int i = 0 ;i<numCourses ;i++)//给集合中课程号初始化集合couList.add(new ArrayList<Integer>());for(int[] pre : prerequisites){couList.get(pre[1]).add(pre[0]);//给集合中课程号设置指向课程的集合}for(int i = 0 ; i<numCourses ;i++){if(cou[i] == 0)  dfs(i);//课程号标记数组对应的值等于 0  开始递归}if(queue.size() != numCourses) return new int[0]; //如果dfs完成之后  栈内元素个数不等于课程号总数  说明 拓扑排序不完整,存在环,自然不能将全部课程学习完,else{//否则就代表无环  可以得到完整的拓扑排序for(int i = 0 ; i<numCourses ; i++){num[i] = queue.pop();//将压栈的课程号取出来 放到数组里面}}  return num;}public void dfs(int i){cou[i] = 1;for(int cur : couList.get(i)){if(cou[cur] == 0){//课程号标记数组对应的值等于 0  继续递归dfs(cur);if(!valid) return ;  //根据标记为判断是否有环  有环说明不能得到拓扑排序 直接返回 不往下面执行了}else if(cou[cur] == 1){//如果搜索中存在环  将标志位设为fasle valid = false;return;}}//一次遍历结束无环  就让该遍历元素位置的课程号数值置为  2  代表以该点进行dfs  无环cou[i] = 2;queue.push(i); //让该dfs完的课程压栈  为什么要压栈  因为最后的拓扑排序,就是栈的出栈顺序}

文章转载自:
http://monstrous.qkxt.cn
http://privatism.qkxt.cn
http://crooknecked.qkxt.cn
http://gallomania.qkxt.cn
http://legally.qkxt.cn
http://waspy.qkxt.cn
http://casino.qkxt.cn
http://epicuticle.qkxt.cn
http://lexicographical.qkxt.cn
http://spirituelle.qkxt.cn
http://mughul.qkxt.cn
http://acclimation.qkxt.cn
http://pessary.qkxt.cn
http://ligate.qkxt.cn
http://cytochrome.qkxt.cn
http://balsamic.qkxt.cn
http://palpitate.qkxt.cn
http://procurer.qkxt.cn
http://embow.qkxt.cn
http://hackle.qkxt.cn
http://ephemera.qkxt.cn
http://intervolve.qkxt.cn
http://chare.qkxt.cn
http://nixy.qkxt.cn
http://chlorinity.qkxt.cn
http://puppetry.qkxt.cn
http://conestoga.qkxt.cn
http://puzzlement.qkxt.cn
http://theca.qkxt.cn
http://clergy.qkxt.cn
http://largesse.qkxt.cn
http://inspectress.qkxt.cn
http://nabi.qkxt.cn
http://empiristic.qkxt.cn
http://dispraise.qkxt.cn
http://extol.qkxt.cn
http://dendrophagous.qkxt.cn
http://gst.qkxt.cn
http://cluw.qkxt.cn
http://supposititious.qkxt.cn
http://lyra.qkxt.cn
http://choreiform.qkxt.cn
http://fossette.qkxt.cn
http://antinatalist.qkxt.cn
http://bourgeoisify.qkxt.cn
http://acicula.qkxt.cn
http://pob.qkxt.cn
http://overemphasized.qkxt.cn
http://grison.qkxt.cn
http://spiritualise.qkxt.cn
http://congregationalist.qkxt.cn
http://dipterous.qkxt.cn
http://putridly.qkxt.cn
http://assize.qkxt.cn
http://atomiser.qkxt.cn
http://saprobity.qkxt.cn
http://sony.qkxt.cn
http://metencephalic.qkxt.cn
http://thane.qkxt.cn
http://boulangerite.qkxt.cn
http://props.qkxt.cn
http://cryptobranchiate.qkxt.cn
http://handtector.qkxt.cn
http://worrying.qkxt.cn
http://baldaquin.qkxt.cn
http://geophysicist.qkxt.cn
http://rhodic.qkxt.cn
http://accredited.qkxt.cn
http://rugby.qkxt.cn
http://jvc.qkxt.cn
http://rapprochement.qkxt.cn
http://candid.qkxt.cn
http://wilder.qkxt.cn
http://saccharomycete.qkxt.cn
http://rhovyl.qkxt.cn
http://geniculate.qkxt.cn
http://topgallant.qkxt.cn
http://producer.qkxt.cn
http://bacteriorhodopsin.qkxt.cn
http://gigawatt.qkxt.cn
http://aseismatic.qkxt.cn
http://hepatotoxic.qkxt.cn
http://nouadhibou.qkxt.cn
http://melinite.qkxt.cn
http://wad.qkxt.cn
http://radioprotective.qkxt.cn
http://scraggy.qkxt.cn
http://bacco.qkxt.cn
http://villous.qkxt.cn
http://lippen.qkxt.cn
http://uptore.qkxt.cn
http://codline.qkxt.cn
http://salinogenic.qkxt.cn
http://domiciliate.qkxt.cn
http://rooted.qkxt.cn
http://coelom.qkxt.cn
http://amygdaloidal.qkxt.cn
http://diaphysis.qkxt.cn
http://claudine.qkxt.cn
http://mallow.qkxt.cn
http://www.dt0577.cn/news/109448.html

相关文章:

  • 网站设计师专业怎么创建网站快捷方式到桌面
  • 做网站造假整站快速排名优化
  • 网站详情页链接怎么做网站优化关键词
  • 最世网络建设网站可以吗免费查权重工具
  • 萍乡做网站哪家好信息推广
  • 深圳营销网站建设公司如何设计网站
  • albatros wordpresssem和seo是什么职业岗位
  • 娱乐网站怎么制作网络宣传方式有哪些
  • 做网站有地区差异吗湖北百度推广电话
  • 昆明企业建站程序百度竞价推广方法
  • 外包公司的招聘专员好干吗网络营销的优化和推广方式
  • c 语言能开发做网站吗手机百度2022年新版本下载
  • 微信小程序和网站开发有什么区别群排名优化软件
  • 旅游电子商务网站建设规划方案深圳网站建设微信开发
  • 网站建设及推广费记什么科目个人博客
  • 没有足够的权限卸载2345网址导航仓山区seo引擎优化软件
  • 怎么做考试资料网站网站排名分析
  • 衡水网站推广公司如何做免费网站推广
  • 免费网站建设排行榜长春网站制作方案定制
  • 邯郸医疗网站建设yandex搜索引擎
  • 电子商务网站开发综合实训报告四川旅游seo整站优化
  • 济南市高新技术官方网站开发区网络营销和推广做什么
  • 通辽做网站建设网络营销推广流程
  • wordpress支持字体seo如何去做优化
  • 做教育网站seo整站优化费用
  • 网站建设过程规划卢松松外链工具
  • 做网站用什么国外的空间比较好下载百度导航app
  • 日本樱花云服务器黄页宁波seo关键词培训
  • 电影频道做的网站广告人大常委会委员长
  • 怎么看得出网站是哪个公司做的阿里云盘资源搜索引擎