先来看一道题吧
题号【Leetcode】200. Number of Islands题目如下所示
Given a 2d grid map of '1'
s (land) and '0'
s (water), count the number of islands. An island is surrounded by water and is formed by connecting adjacent lands horizontally or vertically. You may assume all four edges of the grid are all surrounded by water.
Example 1:
Input: 11110 11010 11000 00000 Output: 1
Example 2:
Input: 11000 11000 00100 00011 Output: 3
经常刷题的朋友肯定做过,大概意思就是一个字符数组中连成一片的’1‘有多少个,连成一片的算一个。
看到这道题首先想到的就是模拟移动,我们随意选一个点,首先判断这个点是不是'1',然后开始上下左右的移动,假设点坐标为(i,j)向上(i, j-1)向下(i+1,j)向左(i, j-1), 向右(i, j+1),但是不能越界,不能超出了数组的边界,我们把移动过的点改为'0',将其标记为走过,不断深入直到周围全是'0'了就停止了