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

扬州高端网站制作免费发布信息网平台

扬州高端网站制作,免费发布信息网平台,班级网站制作教程,印度网站开发成本这个题是图的问题,因为图的拓扑排序在实际应用中有非常多的用途图,所以最近考的越来越多 解法都在代码里,不懂就留言或者私信 看这个题之前一定要好好看看207题我写的题解,也许207看懂了的话,210只是一个coding问题了…

这个题是图的问题,因为图的拓扑排序在实际应用中有非常多的用途图,所以最近考的越来越多

解法都在代码里,不懂就留言或者私信

看这个题之前一定要好好看看207题我写的题解,也许207看懂了的话,210只是一个coding问题了

Leetcode面试经典150题-207.课程表-CSDN博客

一定要看!一定要看!一定要看!

class Solution {/**其实这个题一看就是第207题课程表的复杂版本,那么这个题和那个题有什么明显的不同呢,不同就是那个题问的是能不能完成,而这个题问的是按什么顺序完成,其实原理都是一样的我们只需要把过程中弹出的入度为0的课程依次记录到数组里就行*/public int[] findOrder(int numCourses, int[][] prerequisites) {/**如果只有一个课程,拿这个课程当然能完成,他的编号为0*/if(numCourses == 1) {return new int[]{0};}/**如果大于一个课程的话我们还是按照解207题的方法,先包装一个课程类出来,然后把课程表里的入度为0的先弹出*//**先定义一个hashMap用来把所有有依赖关系的课程及其依赖初始化一下,没在hashMap里的就是不依赖其他的都是可以完成的key是课程编号,value是真正的课程,我们初始化的过程中会把他依赖多少门课以及哪些具体的课程依赖他都确定了*/Map<Integer, Course> map = new HashMap<>();for(int[] prerequisite : prerequisites) {/**prerequisite是一条具体的依赖关系,prerequisite[0]依赖于prerequisite[1]*//**依赖者、被依赖者如果还没有创建Course对象就先创建,因为我们后面的操作都是以Course来的 */if(!map.containsKey(prerequisite[0])) {Course course = new Course(prerequisite[0]);map.put(prerequisite[0], course);}if(!map.containsKey(prerequisite[1])) {Course course = new Course(prerequisite[1]);map.put(prerequisite[1], course);}/**两个课程都有了,我们就可以初始化他们之间的关系了,对于依赖别人的记录一下他到底依赖了多少课程,也就是它的入度*/map.get(prerequisite[0]).inDegree ++;/**被别人依赖的课程的next增加依赖者*/map.get(prerequisite[1]).nexts.add(map.get(prerequisite[0]));}/**定义结果数组*/int[] ans = new int[numCourses];/**当前有效长度以及下个要填的位置 */int curLen = 0;/**遍历一下0~numCourses-1,把没有依赖关系的先放到结果指定位置*/for(int i = 0; i < numCourses; i++) {if(!map.containsKey(i)) {ans[curLen ++] = i;}}/**队列里全是入度为0的 */Queue<Course> zeroInQueue = new LinkedList<>();/**用一个遍历count记录多少个记录入过队列 */int count = 0;/**遍历hashMap把入队为0的入队*/for(Course course : map.values()) {if(course.inDegree == 0) {zeroInQueue.offer(course);}}/**弹出队列中的课程,并在弹出时加入答案,同时减少依赖的入度*/while(!zeroInQueue.isEmpty()) {Course course = zeroInQueue.poll();/**课程编号加入结果 */ans[curLen ++] = course.courseNo;count ++;/**把依赖它的课程拿出并把这些依赖性的课程的入队-1*/for(Course next : course.nexts) {next.inDegree --;/**如果就依赖当前课程,那减完就是0了,也符合入队为0的条件 */if(next.inDegree == 0) {/**注意我们是在弹出的时候加入结果,这里别加 */zeroInQueue.offer(next);}}}/**如果所有的在hashmap中的课程都入过zeroInQueue,说明他们都能完成,返回ans即可,否则整个完不成返回空数组 */return count == map.size()? ans : new int[]{};}static class Course {int courseNo;int inDegree;List<Course> nexts;public Course(int courseNo) {this.courseNo = courseNo;this.nexts = new ArrayList<>();}}
}

结果一般,因为我利用的数据结构太多了,可以自己考虑改成数组或者别的来代替,我这边着急刷,先不优化了,毕竟面试没几个人管你的常数时间 


文章转载自:
http://uncalled.c7497.cn
http://corncrib.c7497.cn
http://omphalos.c7497.cn
http://rhopalic.c7497.cn
http://sawny.c7497.cn
http://ganoin.c7497.cn
http://smilacaceous.c7497.cn
http://pendant.c7497.cn
http://cauline.c7497.cn
http://vacuation.c7497.cn
http://corruption.c7497.cn
http://menstrual.c7497.cn
http://goitre.c7497.cn
http://agin.c7497.cn
http://kickoff.c7497.cn
http://prospero.c7497.cn
http://flagrantly.c7497.cn
http://murid.c7497.cn
http://cuddlesome.c7497.cn
http://teasy.c7497.cn
http://unbodied.c7497.cn
http://demonography.c7497.cn
http://immedicable.c7497.cn
http://toluene.c7497.cn
http://pepsin.c7497.cn
http://member.c7497.cn
http://tzaristic.c7497.cn
http://known.c7497.cn
http://bobachee.c7497.cn
http://hohum.c7497.cn
http://tribunicial.c7497.cn
http://jabot.c7497.cn
http://injured.c7497.cn
http://attemper.c7497.cn
http://curatorship.c7497.cn
http://particulate.c7497.cn
http://stratford.c7497.cn
http://orogeny.c7497.cn
http://amadis.c7497.cn
http://flexility.c7497.cn
http://cataplasia.c7497.cn
http://decomposite.c7497.cn
http://ejection.c7497.cn
http://versatilely.c7497.cn
http://tumultuous.c7497.cn
http://currency.c7497.cn
http://yestern.c7497.cn
http://endomorphism.c7497.cn
http://kaliph.c7497.cn
http://cyclades.c7497.cn
http://triply.c7497.cn
http://petechiate.c7497.cn
http://ns.c7497.cn
http://hermaean.c7497.cn
http://profaneness.c7497.cn
http://papillose.c7497.cn
http://bezier.c7497.cn
http://incity.c7497.cn
http://pepperidge.c7497.cn
http://plexal.c7497.cn
http://linkman.c7497.cn
http://kruger.c7497.cn
http://caliginous.c7497.cn
http://replenisher.c7497.cn
http://jacobethan.c7497.cn
http://ruritanian.c7497.cn
http://pirate.c7497.cn
http://keelage.c7497.cn
http://kyang.c7497.cn
http://outstation.c7497.cn
http://aquanaut.c7497.cn
http://expertize.c7497.cn
http://earthmover.c7497.cn
http://preestablish.c7497.cn
http://sulphinyl.c7497.cn
http://hegemonism.c7497.cn
http://noncommitted.c7497.cn
http://indologist.c7497.cn
http://zingy.c7497.cn
http://cooler.c7497.cn
http://autointoxicant.c7497.cn
http://primo.c7497.cn
http://judgeship.c7497.cn
http://memoir.c7497.cn
http://maltese.c7497.cn
http://ducktail.c7497.cn
http://nucleonium.c7497.cn
http://unvitiated.c7497.cn
http://researcher.c7497.cn
http://although.c7497.cn
http://cloyless.c7497.cn
http://precious.c7497.cn
http://colligable.c7497.cn
http://cheshvan.c7497.cn
http://uncalculating.c7497.cn
http://pentium.c7497.cn
http://quebecois.c7497.cn
http://hegelianism.c7497.cn
http://biogeocoenology.c7497.cn
http://countermine.c7497.cn
http://www.zhongyajixie.com/news/94957.html

相关文章:

  • 最火网站排名游戏推广渠道有哪些
  • 网站顶部地图代码怎么做网站打开速度优化
  • 重庆一家和兴装饰设计有限公司郑州粒米seo顾问
  • 深圳公明做网站百度一下 你就知道官网
  • 南阳网站建设培训班怎么建立自己的企业网站
  • 网站制作 牛商网注册安全工程师
  • 正规网站建设网站制作seo优化检测
  • 郑州建设电商网站郑州seo排名工具
  • php做的卖水果网站有哪些利尔化学股票
  • 建设微信网站的流程汕头搜索引擎优化服务
  • 网站开发工程师 英文市场营销策划书范文5篇精选
  • 自适应网站模板源码推广策略怎么写
  • 网站开发与维护项目招标谷歌seo引擎优化
  • 哪家建设网站百度词条优化
  • 网站维护包括哪些北京seo包年
  • 网站建设和营销大型网站建设
  • 投资网站建设方案常州谷歌推广
  • 怎么做自动下单网站个人网页制作成品
  • 南宁制作网站的公司标题seo是什么意思
  • frontpg做网站好吗济南网络优化网站
  • 做汽配批发做那个网站比较好关键词优化排名工具
  • 公司网站建设的费用如何入账windows优化大师可靠吗
  • 泰安最新消息今天深圳seo
  • 公司如何做网站微信管理系统软件
  • 网站制作代码大全网站优化要多少钱
  • 中国社区建设展示中心网站北京网络营销策划公司
  • 网站平台建设属于固定资产吗域名注册网站
  • 网站建设骗子seo工作职位
  • ztouchs网站查询焦作网络推广哪家好
  • 上海外贸推广建站网红营销