Menu
CoddyTech

Number of Provinces

Há n cidades, numeradas de 0 a n-1. Você recebe uma matriz n × n chamada isConnected, representada como uma lista de linhas: isConnected[i][j] é 1 quando uma estrada liga diretamente a cidade i à cidade j, e 0 quando não liga. As estradas funcionam nos dois sentidos, portanto a matriz é simétrica, e toda cidade é considerada ligada a si mesma.

Uma província é um grupo de cidades que conseguem alcançar umas às outras, diretamente ou por meio de outras cidades, sem que nenhuma estrada saia do grupo. Retorne o número de províncias.

Função

findCircleNum(isConnected: integer-2d-array) → integer
isConnectedinteger-2d-array
a matriz n × n, 1 quando uma estrada liga duas cidades diretamente
Retornainteger
o número de províncias

Restrições

  • 1 ≤ n ≤ 150, em que n = isConnected.length
  • isConnected[i].length = n
  • isConnected[i][j] é 0 ou 1
  • isConnected[i][i] = 1
  • isConnected[i][j] = isConnected[j][i]

Exemplos

Entrada
isConnected = [[1, 0, 0, 1], [0, 1, 1, 0], [0, 1, 1, 0], [1, 0, 0, 1]]
Saída
2
Explicação
A cidade 0 tem uma estrada até a cidade 3, e a cidade 1 tem uma estrada até a cidade 2. Nenhuma estrada conecta os dois pares, então há 2 províncias.

lock icon+15 testes ocultos ao enviar

challenge icon

Para ir além

Cada estrada agora é aberta em um determinado dia. Você consegue encontrar o primeiro dia em que todas as cidades pertencem a uma única província?

Redefinir código
def findCircleNum(isConnected):
    # Escreva o código aqui
Casos de teste

Caso 1

Caso 2

Entrada

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

Esperado

2