Menu
CoddyTech

Number of Provinces

Có n thành phố, được đánh số từ 0 đến n-1. isConnected[i][j] là 1 khi có đường nối trực tiếp thành phố i với thành phố j, và là 0 trong trường hợp còn lại. Đường đi theo cả hai chiều, nên ma trận đối xứng, và mỗi thành phố đều nối với chính nó.

Tỉnh là một nhóm thành phố mà tất cả đều có thể đi đến nhau, trực tiếp hoặc qua các thành phố khác, và không có con đường nào dẫn ra khỏi nhóm. Hãy trả về số tỉnh.

Hàm

findCircleNum(isConnected: integer-2d-array) → integer
isConnectedinteger-2d-array
ma trận n × n, giá trị 1 khi có đường nối trực tiếp hai thành phố
Trả vềinteger
số tỉnh

Ràng buộc

  • 1 ≤ n ≤ 150, trong đó n = isConnected.length
  • isConnected[i].length = n
  • isConnected[i][j] là 0 hoặc 1
  • isConnected[i][i] = 1
  • isConnected[i][j] = isConnected[j][i]

Ví dụ

Đầu vào
isConnected = [[1, 0, 0, 1], [0, 1, 1, 0], [0, 1, 1, 0], [1, 0, 0, 1]]
Đầu ra
2
Giải thích
Thành phố 0 có đường đến thành phố 3, còn thành phố 1 có đường đến thành phố 2. Không có con đường nào nối hai cặp thành phố, nên có 2 tỉnh.
challenge icon

Câu hỏi mở rộng

Mỗi con đường giờ đây mở vào một ngày nhất định. Bạn có thể tìm ngày đầu tiên mà tất cả các thành phố đều thuộc cùng một tỉnh không?

Đặt lại code
def findCircleNum(isConnected):
    # Viết code ở đây

Kiểm thử #1

Kiểm thử #2

Đối số

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

Đầu ra mong đợi

2