Skip to content

Commit f91199a

Browse files
authored
feat: 547. Number of Provinces (#49)
1 parent e5e30b3 commit f91199a

3 files changed

Lines changed: 26 additions & 0 deletions

File tree

src/graphs/number_of_provinces/__init__.py

Whitespace-only changes.
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
class Solution:
2+
def dfs(self, node: int, isConnected: list[list[int]], visited: list[bool]):
3+
visited[node] = True
4+
for i in range(len(isConnected)):
5+
if isConnected[node][i] and not visited[i]:
6+
self.dfs(i, isConnected, visited)
7+
8+
def findCircleNum(self, isConnected: list[list[int]]) -> int:
9+
provinces = 0
10+
visited = [False] * len(isConnected)
11+
for i in range(len(isConnected)):
12+
if not visited[i]:
13+
provinces += 1
14+
self.dfs(i, isConnected, visited)
15+
return provinces

tests/test_number_of_provinces.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import pytest
2+
from src.graphs.number_of_provinces.solution import Solution
3+
4+
5+
@pytest.mark.parametrize(
6+
"isConnected, expected",
7+
[([[1, 1, 0], [1, 1, 0], [0, 0, 1]], 2), ([[1, 0, 0], [0, 1, 0], [0, 0, 1]], 3)],
8+
)
9+
def test_number_of_provinces(isConnected, expected):
10+
solution = Solution()
11+
assert solution.findCircleNum(isConnected) == expected

0 commit comments

Comments
 (0)