0代表海洋,1代表陆地
计算从某一起点相连陆地面积
island=[[1,1,1,1,0], [1,0,1,0,0], [1,0,0,0,1], [1,1,1,1,1], [0,0,1,0,0]] #注意此处path要提前设为(0,0),否则(0,1)或其他相邻点会有可能重复指向起点造成多次计数 def dfs(cX=0,cY=0,path=[(0,0)]): connect=[(0,1),(1,0),(-1,0),(0,-1)] for c in connect: nX=cX+c[0] nY=cY+c[1] if nX>=0 and nX<5 and nY>=0 and nY<5: if (nX,nY) not in path and island[nX][nY]!=0: path.append((nX,nY)) global count count+=1 dfs(nX,nY,path) count=1 dfs() print(count)