Course Schedule LeetCode solution in JavaScript
1var canFinish = function (numCourses, prerequisites) {2const adjList = [];3const visit = [];4construAdj();5for (let i = 0; i < numCourses; i++) {6if (!dfs(i)) return false;7}8return true;910function dfs(i) {11// base case12if (visit[i]) return false;13if (visit[i] === false) return true;1415visit[i] = true;1617for (const nei of adjList[i] ?? []) {18if (!dfs(nei)) return false;19}2021visit[i] = false;22return true;23}2425function construAdj() {26for (const pre of prerequisites) {27if (!adjList[pre[0]]) adjList[pre[0]] = [];28adjList[pre[0]].push(pre[1]);29}30}31};