美文网首页
leetcode-岛屿数量

leetcode-岛屿数量

作者: 棉花糖7 | 来源:发表于2020-04-25 11:37 被阅读0次

    这道题巧妙用了深度遍历和广度遍历

    深度遍历比较好理解,找到一个陆地,数值为“1”,然后深度遍历,将其周围的陆地都包括进去,构成一个岛屿,重点的是遍历过的陆地,要改为“0”,表示已经访问过了。

    广度遍历,也是找到一个陆地,然后将其入队列,之后遍历其上下左右的网格,是否是陆地,如果是的话,就进入队列。直到队列为空,才说明以这个陆地为起点的周围的陆地都已经包括进去了,一起形成了一个岛屿。其中重要的一点,除了上面说的,遍历过的陆地要改为“0”,表示已经访问过了,还要巧妙的用pair,记录该网格点的坐标,即queue<pair<int,int>>que,它有两个成员变量,que.first我们用它表示横坐标,que.second用它表示纵坐标,在push的时候使用花括号,即que.push({i,j}).

    题目 code

    原文题解

    相关文章

      网友评论

          本文标题:leetcode-岛屿数量

          本文链接:https://www.haomeiwen.com/subject/xelbmhtx.html