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

影视网站怎么做app宁波seo优化排名

影视网站怎么做app,宁波seo优化排名,东莞微网站建设报价,网站更新 缓存问题背景 你这个学期必须选修 n u m C o u r s e s numCourses numCourses 门课程,记为 0 0 0 到 n u m C o u r s e s − 1 numCourses - 1 numCourses−1。 在选修某些课程之前需要一些先修课程。 先修课程按数组 p r e r e q u i s i t e s prerequisites p…

问题背景

你这个学期必须选修 n u m C o u r s e s numCourses numCourses 门课程,记为 0 0 0 n u m C o u r s e s − 1 numCourses - 1 numCourses1
在选修某些课程之前需要一些先修课程。 先修课程按数组 p r e r e q u i s i t e s prerequisites prerequisites 给出,其中 p r e r e q u i s i t e s [ i ] = [ a i , b i ] prerequisites[i] = [a_i, b_i] prerequisites[i]=[ai,bi],表示如果要学习课程 a i a_i ai必须 先学习课程 b i b_i bi
例如,先修课程对 [ 0 , 1 ] [0, 1] [0,1] 表示:想要学习课程 0 0 0,你需要先完成课程 1 1 1
请你判断是否可能完成所有课程的学习?如果可以,返回 t r u e true true;否则,返回 f a l s e false false

数据约束

  • 1 ≤ n u m C o u r s e s ≤ 2000 1 \le numCourses \le 2000 1numCourses2000
  • 0 ≤ p r e r e q u i s i t e s . l e n g t h ≤ 5000 0 \le prerequisites.length \le 5000 0prerequisites.length5000
  • p r e r e q u i s i t e s [ i ] . l e n g t h = 2 prerequisites[i].length = 2 prerequisites[i].length=2
  • 0 ≤ a i , b i < n u m C o u r s e s 0 \le a_i, b_i \lt numCourses 0ai,bi<numCourses
  • p r e r e q u i s i t e s [ i ] prerequisites[i] prerequisites[i] 中的所有课程对 互不相同

解题过程

判断是否是有向无环图的模板题,暴力的角度上看,深搜和广搜都能做,用图的入度来进行判断。
看了 灵神的题解 学到了三色标记法,进一步了解到这种方法能够解决拓扑排序的问题,决定目前的阶段先学到这种程度。
用三种状态来描述当前处理过程中节点的情况:

  • 如果当前节点尚未被访问,用 0 0 0 来标记。
  • 如果当前节点正在访问中(也就是当前正在处理与它相关的节点),用 1 1 1来标记。
  • 如果当前节点已经访问完毕,用 2 2 2 来标记。

如果图中无环,那么不应该出现在处理相关节点的过程中遇到状态为正在访问中的节点的情况。

具体实现

class Solution {public boolean canFinish(int numCourses, int[][] prerequisites) {List<Integer>[] graph = new ArrayList[numCourses];Arrays.setAll(graph, i -> new ArrayList<>());// 根据先后要求建图,所给二维数组中的第二个下标表示前置for(int[] item : prerequisites) {graph[item[1]].add(item[0]);}int[] colors = new int[numCourses];for(int i = 0; i < numCourses; i++) {if(colors[i] == 0 && dfs(i, graph, colors)) {return false;}}return true;}// 遍历方法返回的就是图中是否有环private boolean dfs(int cur, List<Integer>[] graph, int[] colors) {// 将当前节点标记为访问中colors[cur] = 1;// 依次访问这个从这个节点出发,能够到达的所有节点for(int next : graph[cur]) {// 判断是否遇到访问中的节点,并递归当前节点// 注意 Java 中逻辑与比逻辑或优先级要高,这里如果没有发生或运算短路,要先计算与if(colors[next] == 1 || colors[next] == 0 && dfs(next, graph, colors)) {return true;}}// 将当前节点标记为已访问过colors[cur] = 2;return false;}
}
http://www.hkea.cn/news/506873/

相关文章:

  • 做一的同志小说网站做seo要投入什么
  • 网站的文件结构百度搜索排名怎么收费
  • 全景网站app网络营销工具分析
  • 南京建设工程交易中心网站seo是什么的简称
  • 利用vps做网站关键字排名查询
  • 常熟网站制作找哪家好品牌型网站制作价格
  • 怎么做自己网站推广网络广告
  • 化州网站建设促销方法100种
  • 长沙专业网站设计平台新闻最新消息10条
  • 惠州网站建设制作宣传推广方案
  • 宁波网站推广外包服务长岭网站优化公司
  • 哈尔滨市哪里做淘宝网站seo课程心得体会
  • 做网站建设公司企业一个企业该如何进行网络营销
  • 移动端h5网站开发服务企业seo推广
  • 管理公司网站建设引擎搜索优化
  • 上市公司专利查询网站百度广告投放价格
  • html5电商网页制作网站怎么seo关键词排名优化推广
  • 大同网站建设黄冈网站推广优化找哪家
  • 昌邑网站建设站长之家网站排名
  • 建设企业网站的需求分析免费域名
  • 重庆欧勒精细有限公司网站策划书百度竞价推广开户
  • 怎么做一键添加信任网站ios aso优化工具
  • ps做网站的分辨率多少钱苹果cms永久免费建站程序
  • 网站推广积分常用于网站推广的营销手段是
  • wordpress时间云储存沈阳网站制作优化推广
  • h5响应式网站建设竞价托管哪家效果好
  • 企业解决方案参考网站品牌软文营销案例
  • 做淘客要有好的网站上海百度seo
  • 网站建设 seojsc宁德seo推广
  • 建立网站的作用信息流优化师工作总结