Menu
CoddyTech

Course Schedule

Ada numCourses kursus, bernomor 0 hingga numCourses-1. Setiap pasangan [a, b] dalam prerequisites berarti kamu harus menyelesaikan kursus b sebelum memulai kursus a. Kembalikan true jika ada urutan yang memungkinkanmu menyelesaikan setiap kursus, dan false jika tidak ada.

Fungsi

canFinish(numCourses: integer, prerequisites: integer-2d-array) → boolean
numCoursesinteger
jumlah kursus
prerequisitesinteger-2d-array
pasangan [a, b], masing-masing berarti kursus b harus diambil sebelum kursus a
Mengembalikanboolean
true jika setiap kursus dapat diselesaikan, false jika tidak

Batasan

  • 1 ≤ numCourses ≤ 105
  • 1 ≤ prerequisites.length ≤ 5000
  • Setiap pasangan [a, b] memiliki 0 ≤ a, b < numCourses.
  • Tidak ada pasangan yang muncul dua kali.
  • Sebuah pasangan dapat menyebut kursus yang sama dua kali, [a, a]. Kursus itu memerlukan dirinya sendiri terlebih dahulu, jadi kursus itu tidak akan pernah bisa diambil.

Contoh

Input
numCourses = 4prerequisites = [[1, 0], [2, 1], [3, 1]]
Output
true
Penjelasan
Kursus 0 tidak memiliki prasyarat, jadi kamu mengambilnya terlebih dahulu. Itu membebaskan kursus 1, yang membebaskan 2 dan 3, jadi urutan 0, 1, 2, 3 bisa digunakan.
challenge icon

Pertanyaan lanjutan

Berapa semester paling sedikit yang diperlukan untuk mencakup semua kursus, jika jumlah kursus berapa pun dapat diambil dalam satu semester selama prasyarat setiap kursus telah diselesaikan pada semester sebelumnya?

Reset kode
def canFinish(numCourses, prerequisites):
    # Tulis kodemu di sini

Tes #1

Tes #2

Argumen

numCourses = 4
prerequisites = [[1, 0], [2, 1], [3, 1]]

Output yang diharapkan

true