Skip to content

Commit d277c68

Browse files
authored
course schedule solution
1 parent dc9aebd commit d277c68

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

course-schedule/yhkee0404.swift

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
class Solution {
2+
func canFinish(_ numCourses: Int, _ prerequisites: [[Int]]) -> Bool {
3+
var adj: [[Int]] = Array(repeating: [], count: numCourses)
4+
for ab in prerequisites {
5+
adj[ab[0]].append(ab[1])
6+
}
7+
var visited = Array(repeating: 0, count: numCourses)
8+
var stack = Array(0..<numCourses)
9+
while !stack.isEmpty {
10+
let u = stack.last!
11+
if visited[u] == 2 {
12+
stack.removeLast()
13+
continue
14+
} else if visited[u] == 1 {
15+
visited[u] = 2
16+
stack.removeLast()
17+
continue
18+
}
19+
visited[u] = 1
20+
for v in adj[u] {
21+
if visited[v] == 1 {
22+
return false
23+
}
24+
if visited[v] == 2 {
25+
continue
26+
}
27+
stack.append(v)
28+
}
29+
}
30+
return true
31+
}
32+
}

0 commit comments

Comments
 (0)