add new solutions

This commit is contained in:
kanna5 2026-01-05 16:48:03 +09:00
parent 9c2c959a9b
commit 9a10695e8c
Signed by: kkyy
GPG key ID: 06332F3965E9B0CF
29 changed files with 1074 additions and 2 deletions

View file

@ -0,0 +1,37 @@
package q207
func canFinish(numCourses int, prerequisites [][]int) bool {
nDeps := make([]int, numCourses)
revDeps := make([][]int, numCourses)
for i := range prerequisites {
course, prereq := prerequisites[i][0], prerequisites[i][1]
nDeps[course]++
revDeps[prereq] = append(revDeps[prereq], course)
}
queue := []int{}
for i := range numCourses {
if nDeps[i] == 0 && len(revDeps) > 0 {
queue = append(queue, i)
}
}
for ; len(queue) > 0; queue = queue[1:] {
course := queue[0]
for _, r := range revDeps[course] {
nDeps[r]--
if nDeps[r] == 0 {
queue = append(queue, r)
}
}
}
for _, n := range nDeps {
if n > 0 {
return false
}
}
return true
}
var _ = canFinish