图207、课程表

    技术2022-07-10  156

    题目

    C#代码

    public class Solution { public bool CanFinish(int numCourses, int[][] prerequisites) { LinkedList<int>[] list = new LinkedList<int>[numCourses]; for (int i = 0; i < list.Length; i++) { list[i] = new LinkedList<int>(); } int[] count = new int[numCourses]; foreach (var item in prerequisites) { list[item[1]].AddLast(item[0]); count[item[0]]++; } Queue<int> queue = new Queue<int>(); for (int i = 0; i < numCourses; i++) { if (count[i] == 0) queue.Enqueue(i); } if (queue.Count == numCourses) return true; while (queue.Count>0) { int j = queue.Dequeue(); LinkedListNode<int> p = list[j].First; while(p!=null) { count[p.Value]--; if (count[p.Value] == 0) queue.Enqueue(p.Value); p = p.Next; } } bool flag = false; foreach (var item in count) { if(item!=0) { flag = true; break; } } return flag == true ? false : true; } }
    Processed: 0.013, SQL: 9