代码:
- class Solution {
- List
> edges;
- boolean valid = true;
- int[] visited;
- int[] result;
- int index;
- public int[] findOrder(int numCourses, int[][] prerequisites) {
- edges = new ArrayList<>();
- for(int i=0;i
- edges.add(new ArrayList
()); - }
- visited = new int[numCourses];
- result = new int[numCourses];
- index = numCourses - 1;
-
- for(int[] prerequisite:prerequisites){
- edges.get(prerequisite[1]).add(prerequisite[0]);
- }
- for(int i=0;i
- if(visited[i]==0){
- dfs(i);
- }
- }
- if(!valid)return new int[0];
- return result;
- }
- public void dfs(int u){
- visited[u] = 1;
- for(int v:edges.get(u)){
- if(visited[v]==0){
- dfs(v);
- if(!valid)return;
- }else if(visited[v]==1){
- valid = false;
- return;
- }
- }
- visited[u] = 2;
- result[index--] = u;
-
- }
- }
-
相关阅读:
JAVA项目-windows测试环境搭建
快速提升独立站转化率
Java日期类TemporalAdjuster使用说明
HAproxy+keepalived+nginx 实验部署
C语言——移除数组中的指定元素
【面试突击算法第二天】剑指offer + Leetcode Hot100
蓝牙耳机哪款好用音质好?高音质的蓝牙耳机推荐
多肽介导PEG磷脂——靶向功能材料之DSPE-PEG-RGD/TAT/NGR/APRPG
购买链接服务后使用记录
什么是GCC 基础概念版
-
原文地址:https://blog.csdn.net/stacey777/article/details/133589424