题解 | #岛屿数量#

岛屿数量

https://www.nowcoder.com/practice/0c9664d1554e466aa107d899418e814e

迷宫问题,岛屿问题这类的解题思路都是差不多的,dfs/bfs遍历后把所找的路标记。这道题岛屿找到后变为0。
广度优先可以直接用数组表示。quene.put相当于 [].append ,quene.get相当于[].pop(0) 。
class Solution:
    def solve(self , grid: List[List[str]]) -> int:
        # write code here
        quene=[]
        nums=0
        n=len(grid)
        m=len(grid[0])
        for i in range(n):
            for j in range(m):
                if grid[i][j]=="1":
                    nums+=1
                    grid[i][j]="0"
                    quene.append([i,j])
                    while not len(quene)==0:
                        x,y=quene.pop(0)
                        if x-1>=0 and grid[x-1][y]=="1":
                            grid[x-1][y]="0"
                            quene.append([x-1,y])
                        if x+1<len(grid) and grid[x+1][y]=="1":
                            grid[x+1][y]="0"
                            quene.append([x+1,y])
                        if y-1>=0 and grid[x][y-1]=="1":
                            grid[x][y-1]="0"
                            quene.append([x,y-1])
                        if y+1<len(grid[0]) and grid[x][y+1]=="1":
                            grid[x][y+1]="0"
                            quene.append([x,y+1])
        return nums

全部评论

相关推荐

投递长鑫存储等公司7个岗位
点赞 评论 收藏
分享
frutiger:逆天,我家就安阳的,这hr咋能说3k的,你送外卖不比这工资高得多?还说大厂来的6k,打发叫花子的呢?这hr是怎么做到说昧良心的话的
找工作时遇到的神仙HR
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务