计算岛屿的数量

 给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量。
*     一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。
例:1
*     输入:
4 5
*     11110
*     11010
*     11000
*     00000
*     输出: 1
例2:
输入:
4 5
 *     11000
 *     11000
 *     00100
 *     00011
 输出: 3

思路:

给数组中每一个0,1元素设置标志位temp;遍历二维数组,查看每一个元素的上下左右四个位置,若当前位置值为1,且其上、左位置都是0,则num加一;检查其右、下位置的元素,若等于1则将其表示位置为1;

public class NumOfIsland0721 {
    class Node {
        int val;
        int temp;
    }
    public static void main(String[] args){
        int line,row;
        Scanner in = new Scanner(System.in);
        line = in.nextInt();
        row = in.nextInt();
        Node[][] map = new Node[line][row];
        for (int i = 0;i=0){
                        u=map[i-1][j].val;
                    }
                    //下
                    if (i+1=0){
                        l=map[i][j-1].val;
                    }
                    //右
                    if (j+1

广度优先遍历算法思想:

广度优先:

https://blog.csdn.net/chao_shine/article/details/90697271

你可能感兴趣的:(试题)