当前位置: 首页 > 后端技术 > Python

力扣200,Python实现的岛屿数量

时间:2023-03-26 18:21:01 Python

题目要求:思路:遍历数组,每当遇到一块地,将统计的地数加1,将这块地的所有1变为0核心代码:res=0cur=[]#遍历数组foriinrange(len(grid)):forjinrange(len(grid[0])):#如果当前土地是土地,将当前土地改为0ifgrid[i][j]=='1':#注意是Stringgrid[i][j]='0'#将当前地块的坐标添加到cur中,因为需要找到这块地块所有相邻的1,并改为0cur.append((i,j))whilecur:#获取该点的下标cur_i,cur_j=cur.pop(0)#求其上、下、左、右对于x,yin[(1,0),(0,1),(-1,0),(0,-1)]:tmp_i=cur_i+xtmp_j=cur_j+y#如果tmp_i>=0andtmp_i=0andtmp_jint:res=0cur=[]foriinrange(len(grid)):forjinrange(len(grid[0])):ifgrid[i][j]=='1':grid[i][j]='0'cur.append((i,j))whilecur:cur_i,cur_j=cur.pop(0)forx,yin[(1,0),(0,1),(-1,0),(0,-1)]:tmp_i=cur_i+xtmp_j=cur_j+y如果tmp_i>=0并且tmp_i=0并且tmp_j