Menu
CoddyTech

Number of Provinces

هناك n مدينة، مرقمة من 0 إلى n-1. تكون قيمة 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. لا يوجد طريق يصل بين الزوجين، لذا توجد مقاطعتان.
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