direction = [[1,0],[0,1],[-1,0],[0,-1]]
count = 0
def dfs(graph,visit,x,y):
global count
for i ,j in direction:
curx = x+i
cury = y+j
if curx>=len(graph) or curx<0 or cury>=len(graph[0]) or cury<0:
continue
if graph[curx][cury] == 1 and visit[curx][cury] == False:
visit[curx][cury] = True
count += 1
dfs(graph,visit,curx,cury)
n,m = map(int,input().split())
graph = []
for i in range(n):
graph.append(list(map(int,input().split())))
visit = [[False]*m for _ in range(n)]
res = 0
for i in range(n):
for j in range(m):
if graph[i][j] == 1 and visit[i][j] == False:
count = 1
visit[i][j] = True
dfs(graph,visit,i,j)
res = max(res,count)
print(res)
错误写法如下:(待解决)
direction = [[1,0],[0,1],[-1,0],[0,-1]]
count = 0
def dfs(graph,visit,x,y):
global count
for i ,j in direction:
curx = x+i
cury = y+j
if curx>=len(graph) or curx<0 or cury>=len(graph[0]) or cury<0:
continue
if graph[curx][cury] == 1 and visit[curx][cury] == False:
visit[curx][cury] = True
count += 1
dfs(graph,visit,curx,cury)
def main():
n,m = map(int,input().split())
graph = []
for i in range(n):
graph.append(list(map(int,input().split())))
visit = [[False]*m for _ in range(n)]
res = 0
for i in range(n):
for j in range(m):
if graph[i][j] == 1 and visit[i][j] == False:
count = 1
visit[i][j] = True
dfs(graph,visit,i,j)
res = max(res,count)
print(res)
if __name__ == '__main__':
main()