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. אין דרך שמחברת בין שני הזוגות, ולכן יש 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