def getConnectedNum(mat):
cnt = 0
h = len(mat)
for i in range(h):
w = len(mat[i])
for j in range(w):
if mat[i][j] == 0:
cnt = cnt + 1
seekConnected(mat, i, j, h, w)
# 打印
for i in range(h):
for j in range(w):
print(mat[i][j], end="\t")
print()
print()
return cnt
def seekConnected(mat, i, j, h, w, border = None):
if i < 0 or j < 0 or i > h-1 or j > w-1 or mat[i][j] == 1:
return
mat[i][j] = 1
seekConnected(mat, i - 1, j, h, w)
seekConnected(mat, i + 1, j, h, w)
seekConnected(mat, i, j - 1, h, w)
seekConnected(mat, i, j + 1, h, w)
pass
if __name__ == '__main__':
mat = [
[0, 0, 1, 1, 0, 1, 1, 1, 1],
[0, 0, 1, 1, 0, 1, 1, 1, 1],
[0, 0, 1, 1, 1, 1, 1, 0, 0],
[0, 0, 1, 1, 0, 1, 1, 1, 1]
]
print(getConnectedNum(mat))
pass