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

网站建设与管理好过吗网站制作需要多少费用

网站建设与管理好过吗,网站制作需要多少费用,什么杭州seo公司,郑州app开发网站建设题目: 这个学期必须选修numCourses门课程,记为0到numCourse-1 在选修某些课程之前需要一些先修课程。先修课程按数组prerequisites给出,其中prerequisites[i] [ai, bi],表示如果要学习课程ai,则必须先学习课程b1。 例如&#…

题目:

这个学期必须选修numCourses门课程,记为0到numCourse-1

在选修某些课程之前需要一些先修课程。先修课程按数组prerequisites给出,其中prerequisites[i] = [ai, bi],表示如果要学习课程ai,则必须先学习课程b1。

例如,先修课程对[0,1]表示:想要学习课程0,需要先完成课程1

请判断是否可能完成所有课程的学习?如果可以,返回True,否则,返回False

 


 


方法一:深度优先搜索

以出度为0进行优先搜索 

如果某一门课程的出度为0表示为相对高阶的课程,出度不为0表示它一定是其他某些课程的先修课程,由浅入深,优先寻找高阶的课程,引入三个状态,依次寻找高阶课程。并将连接它的低阶课程出度减去1,为0后即入栈。依次进行。栈的顺序是先入后出,所以高阶课程是后学习的

import collectionsclass Solution:def canFinish(self, numCourses, prerequisites):""":type numCourses: int:type prerequisites: List[List[int]]:rtype: bool"""edges=collections.defaultdict(list)#存储课程的依赖关系visited=[0]*numCourses #记录访问状态0:未访1:正在访问(递归栈中)2:已访问完成result=[]#存储拓扑排序的结果self.valid=True#表示是否可以完成所有课程,初始化为 Truefor info in prerequisites:edges[info[1]].append(info[0])#将 (b -> a) 关系存入邻接表def dfs(u):  #遍历 u 及其所有依赖课程if not self.valid: #如果 self.valid 变为 False,则直接返回return visited[u]=1 #状态设为1for v in edges[u]:if visited[v]==0: #如果 v 未访问(visited[v] == 0),递归调用dfs(v)if not self.valid:returnelif visited[v]==1: #如果 v 正在访问(visited[v] == 1),说明检测到环self.valid=Falsereturnvisited[u]=2result.append(u)for i in range(numCourses): #遍历 numCourses 中的每个课if self.valid and visited[i]==0: #如果 i 未被访问,并且为Truedfs(i)return self.valid

 时间复杂度:O(m+n)n 为课程数,m 为先修课程的要求数。

空间复杂度:O(m+n)需要存储成邻接表的形式,空间复杂度为 O(n+m)。在深度优先搜索的过程中,我们需要最多 O(n) 的栈空间(递归)进行深度优先搜索,因此总空间复杂度为 O(n+m)


方法二:广度优先搜索

 新建一个数组,课程序号作为索引,先修课程的数目入度作为值,入度为0表示先修课程已经完成,或者没有先修课程,现在可以学习这门课程。新建一个队列,将当前可以学习的课程即入度值为0的课程,加入队列中。先学习C1,则以C1为入度的课程值可以减1,C3和C8的入度值减1,此时C8的值为0,将其加入带学习的对列。开始学习C2,C2学习完后,C3,C5减去1,C3,C5的入度为0,加入待学习的对列。重复此过程,将入度为0 的课程加入待学习的队列,直到所有课程学习结束。

import collectionsclass Solution:def canFinish(self, numCourses, prerequisites):""":type numCourses: int:type prerequisites: List[List[int]]:rtype: bool"""edges=collections.defaultdict(list)#构建一个默认字典,键是课程编号,值是该课程的后继课程列表,defaultdict,确认访问不存在的键时不会报错,而是自动创建一个空列表indeg=[0]*numCourses #存储每门课程的入度,即该课程需要的先修课程的数量,初始化为0for info in prerequisites:#遍历课程数组,他是二维的【【a,b】】,学习 a 需要先学习 bedges[info[1]].append(info[0]) #b->aindeg[info[0]]+=1 #a 的入度 +1q=collections.deque([u for u in range(numCourses) if indeg[u]==0])#入度为 0 的节点入队visited=0 #记录访问的课程数while q:visited+=1 # # 每出队一个节点,表示完成了一门课程u=q.popleft()  #取出队首节点for v in edges[u]:# 遍历所有相邻节点indeg[v]-=1 # 依赖于 u 的课程入度 -1if indeg[v]==0:#如果某门课程入度变为 0,说明可以学习q.append(v) # 加入队列return visited==numCourses ## 如果所有课程都能被访问,说明可以完成所有课程

 时间复杂度:O(m+n)n 为课程数,m 为先修课程的要求数。

空间复杂度:O(m+n)需要存储成邻接表的形式,空间复杂度为 O(n+m)。在深度优先搜索的过程中,我们需要最多 O(n) 队列空间迭代进行广度优先搜索,因此总空间复杂度为 O(n+m)

源自力扣官方题解


文章转载自:

http://A0RK3EU4.rqxhp.cn
http://wxwYM8zv.rqxhp.cn
http://vMl7kHWh.rqxhp.cn
http://WXj0NcbB.rqxhp.cn
http://idBfrDRo.rqxhp.cn
http://JTjUzPYS.rqxhp.cn
http://qVeq85xT.rqxhp.cn
http://4JK5y2yT.rqxhp.cn
http://52mmS4gN.rqxhp.cn
http://gsKU1Xux.rqxhp.cn
http://tADIga59.rqxhp.cn
http://bIlYB1gi.rqxhp.cn
http://ETK0WJGF.rqxhp.cn
http://s6yDDx32.rqxhp.cn
http://4idVumTR.rqxhp.cn
http://pdZWc9wR.rqxhp.cn
http://eUAZsy1G.rqxhp.cn
http://5DB1YT45.rqxhp.cn
http://unUzlKN1.rqxhp.cn
http://if5GW3jL.rqxhp.cn
http://YXwis2Pu.rqxhp.cn
http://Gj4ugBQ0.rqxhp.cn
http://cjgkchnq.rqxhp.cn
http://IFaTeGnW.rqxhp.cn
http://MBnBcWEj.rqxhp.cn
http://i9YcRptW.rqxhp.cn
http://9I9n1k8v.rqxhp.cn
http://t6AeUt1g.rqxhp.cn
http://B7VlEir8.rqxhp.cn
http://haxFDsMP.rqxhp.cn
http://www.dtcms.com/wzjs/705326.html

相关文章:

  • 网络信息安全网站开发教程280地图导航下载
  • 台州网站推广外包公司要找网站公司
  • 在国外怎么做网站政务系统网站
  • 天网网站建设晋宁网站建设
  • 顺德高端网站哔哩哔哩网页版怎么回到旧版
  • 如何进入正能量奖励网站vue前端页面模板
  • 备案查询站长之家wordpress建站好用吗
  • 三亚市住房和城乡建设局网站网站建设服务费税率多少钱
  • 世界摄影网站微信商城在哪里找
  • 郑州豆芽网站建设12123互联网服务平台
  • 无锡 做网站小程序开发用什么工具
  • 深圳网站推广哪家好百度平台营销软件
  • 陕西交通建设集团公司网站百度广告优化师
  • 沈阳城乡建设官方网站专门做湘菜的网站
  • 免费网站空间哪个好太原公司网站建设
  • 服装效果图网站网站做定制还是固定模板
  • 网站关键词几个最好凡客另一购物网站
  • 黄江镇网站仿做长沙网站seo方法
  • 网站开发合同的缺陷如何开发小程序微信
  • 需要网站建设的人多吗网站设计_网站建设_手机网站建设
  • 完成公司网站建设word上下页边距怎么调
  • 网站建设 英语词汇上海临港
  • 专业制作网站电商网站建设与运营实训
  • 成都建设网站哪家好wordpress默认编辑器功能增强
  • 移动端的网站模板巴中市做网站
  • 长沙做网站团队石家庄网站建设外包
  • 网站虚拟空间作用网站公司大全
  • 网站制作怎么学去哪学正能量网站有哪些
  • 网站程序安装深圳seo网站推广公司
  • 网站网页设计制作教程做游戏网站要多少钱