基础题笔记(三):岛屿面积

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)
可以直接留言交流问题或想法,每天都会看
原文地址:https://www.cnblogs.com/shitianfang/p/12382714.html