Menu
CoddyTech
flag Ar iconالعربيةdown icon

Course Schedule

هناك numCourses مقررًا، مرقمة من 0 إلى numCourses-1. كل زوج [a, b] في prerequisites يعني أنه يجب عليك إكمال المقرر b قبل أن تتمكن من بدء المقرر a. أرجع true إذا وُجد ترتيب يمكنك من خلاله إكمال كل مقرر، وfalse إذا لم يوجد.

الدالة

canFinish(numCourses: integer, prerequisites: integer-2d-array) → boolean
numCoursesinteger
عدد المقررات الدراسية
prerequisitesinteger-2d-array
الأزواج [a, b]، ويعني كلٌّ منها أن المقرر b يسبق المقرر a
تُرجعboolean
صحيح إذا أمكن إنهاء كل مقرر، وخطأ خلاف ذلك

القيود

  • 1 ≤ numCourses ≤ 105
  • 1 ≤ prerequisites.length ≤ 5000
  • لكل زوج [a, b]، لدينا 0 ≤ a, b < numCourses.
  • لا يظهر أي زوج مرتين.
  • قد يُسمّي الزوج المقرر نفسه مرتين، [a, a]. يحتاج ذلك المقرر إلى أن يسبق نفسه، لذا يستحيل أخذه.

أمثلة

المدخلات
numCourses = 4prerequisites = [[1, 0], [2, 1], [3, 1]]
المخرجات
true
الشرح
المقرر 0 ليس له أي متطلبات سابقة، لذا تدرسه أولًا. وهذا يتيح لك دراسة المقرر 1، والمقرر 1 يتيح لك دراسة كلٍّ من 2 و3، لذا فإن الترتيب 0، 1، 2، 3 مناسب.

lock icon+20 اختبارات مخفية عند الإرسال

challenge icon

سؤال إضافي

يمكن إدراج أي عدد من المقررات في فصل دراسي واحد، ما دامت المتطلبات السابقة لكل مقرر قد أُنجزت في فصول دراسية سابقة. ما أقل عدد من الفصول الدراسية يكفي لتغطية جميع المقررات؟

إعادة ضبط الشيفرة
def canFinish(numCourses, prerequisites):
    # اكتب الكود هنا
حالات الاختبار

الحالة 1

الحالة 2

المدخلات

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

المتوقع

true