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

Number of Provinces

هناك n مدينة، مرقّمة من 0 إلى n-1. تحصل على مصفوفة n × n باسم isConnected على شكل قائمة من الصفوف: تكون قيمة isConnected[i][j] هي 1 عندما يصل طريق بين المدينة i والمدينة j مباشرةً، وتكون 0 عندما لا يصل بينهما طريق. تسير الطرق في الاتجاهين، لذا فالمصفوفة متماثلة، وتُعدّ كل مدينة متصلة بنفسها.

المقاطعة مجموعة من المدن يمكن لكل منها الوصول إلى الأخرى، مباشرةً أو عبر مدن أخرى، من دون أن يؤدي أي طريق إلى خارج المجموعة. أعد عدد المقاطعات.

الدالة

findCircleNum(isConnected: integer-2d-array) → integer
isConnectedinteger-2d-array
المصفوفة n × n، وتكون القيمة 1 عندما يربط طريقٌ مدينتين مباشرةً
تُرجعinteger
عدد المقاطعات

القيود

  • 1 ≤ n ≤ 150، حيث n = isConnected.length
  • isConnected[i].length = n
  • isConnected[i][j] تساوي 0 أو 1
  • isConnected[i][i] = 1
  • isConnected[i][j] = isConnected[j][i]

أمثلة

المدخلات
isConnected = [[1, 0, 0, 1], [0, 1, 1, 0], [0, 1, 1, 0], [1, 0, 0, 1]]
المخرجات
2
الشرح
لدى المدينة 0 طريق إلى المدينة 3، ولدى المدينة 1 طريق إلى المدينة 2. لا يعبر أي طريق بين الزوجين، لذا توجد مقاطعتان.

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

challenge icon

سؤال إضافي

يُفتتح كل طريق في يوم محدد. هل يمكنك العثور على أول يوم تصبح فيه جميع المدن تابعة لمقاطعة واحدة؟

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

الحالة 1

الحالة 2

المدخلات

isConnected = [[1, 0, 0, 1], [0, 1, 1, 0], [0, 1, 1, 0], [1, 0, 0, 1]]

المتوقع

2