我写了一个代码来对二进制矩阵中的1组进行计数。引用my question link here
代码
def groupcheck(i,j,matrix):
if 0 <= i < len(matrix) and 0 <= j < len(matrix):
if matrix[i][j]:
matrix[i][j] = 0
for dx,dy in ((-1,0),(1,(0,-1),1)):
groupcheck(i + dx,j + dy,matrix)
def countGroup(matrix):
count = 0;
for i in range(len(matrix)):
for j in range(len(matrix)):
if matrix[i][j]:
count += 1
groupcheck(i,matrix)
return count
matrix = [
[1,1,0],[1,[0,1]
]
group = countGroup(matrix)
print(group)
有人可以帮助我计算该算法的复杂度以及它是哪种方法吗?还有没有比这更好的方法了?
根据我的复杂性和方法(如果我错了,请纠正我):
complexity : O(n^2*4) (n is length of square matrix)
approach: brute force
我还在学习,请尝试向我解释。