提高网站的权重的最佳方法,软件开发公司企业简介,收录网站,数控技术是学什么提示#xff1a;文章写完后#xff0c;目录可以自动生成#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、力扣207. 课程表 前言 图这种数据结构有一些比较特殊的算法#xff0c;比如二分图判断#xff0c;有环图无环图的判断#xff0c;拓扑排序#xff0c;以… 提示文章写完后目录可以自动生成如何生成可参考右边的帮助文档 文章目录 前言一、力扣207. 课程表 前言 图这种数据结构有一些比较特殊的算法比如二分图判断有环图无环图的判断拓扑排序以及最经典的最小生成树单源最短路径问题更难的就是类似网络流这样的问题。 不过以我的经验呢像网络流这种问题你又不是打竞赛的没时间的话就
一、力扣207. 课程表
class Solution {boolean[] onPath;boolean[] visited;boolean hasCycle false;public boolean canFinish(int numCourses, int[][] prerequisites) {ListInteger[] graph buildGraph(numCourses, prerequisites);onPath new boolean[numCourses];visited new boolean[numCourses];for(int i 0; i numCourses; i ){traverse(graph, i);}return !hasCycle;}public void traverse(ListInteger[] graph, int s){if(onPath[s]){hasCycle true;return;}if(visited[s] || hasCycle){return;}onPath[s] true;visited[s] true;for(int a : graph[s]){traverse(graph, a);}onPath[s] false;}public ListInteger[] buildGraph(int numCourses, int[][] prerequisites){ListInteger[] graph new LinkedList[numCourses];for(int i 0; i numCourses; i ){graph[i] new LinkedList();}for(int[] a : prerequisites){int from a[1];int to a[0];graph[to].add(from);}return graph;}
}