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

Meeting Rooms

لديك قائمة بالاجتماعات على شكل مصفوفتين: يمتد الاجتماع i من starts[i] إلى ends[i]. يريد شخص حضورها جميعًا، لذا يجب ألا يتداخل أي اجتماعين. يمكن أن يبدأ اجتماع في اللحظة نفسها التي ينتهي فيها اجتماع آخر. أعد true إذا كان بإمكان الشخص حضور كل اجتماع، وإلا فأعد false.

الدالة

canAttendMeetings(starts: integer-array, ends: integer-array) → boolean
startsinteger-array
وقت بدء كل اجتماع
endsinteger-array
وقت انتهاء كل اجتماع، في الفهرس نفسه الذي يوجد فيه وقت بدايته
تُرجعboolean
صحيح إذا لم يتداخل أي اجتماعين، وخطأ خلاف ذلك

القيود

  • 1 ≤ starts.length == ends.length ≤ 5000
  • 0 ≤ starts[i] < ends[i] ≤ 106
  • الاجتماعات غير مرتبة. قد يكون اجتماعان متطابقين.

أمثلة

المدخلات
starts = [9, 13, 10]ends = [10, 15, 12]
المخرجات
true
الشرح
بترتيب الوقت، تمتد الاجتماعات من 9 إلى 10، ومن 10 إلى 12، ومن 13 إلى 15. يبدأ الاجتماع الثاني لحظة انتهاء الأول، وهذا مسموح، لذا تكون الإجابة true.

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

challenge icon

سؤال إضافي

إذا كانت الاجتماعات تُحجز واحدًا تلو الآخر، فكيف يمكنك التحقق من كل حجز جديد مقارنةً بالجدول باستخدام O(log n)، دون إعادة ترتيب كل شيء؟

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

الحالة 1

الحالة 2

المدخلات

starts = [9, 13, 10]
ends = [10, 15, 12]

المتوقع

true