给定一个二维数组,所有位置的值不是0就是1。规定每个位置可以和它上下左右位置上的值相连。
有一个叫做岛的概念,定义如下:
连成一片的1,如果周围都是0,那么这一片1,构成一个岛。
求整张图上有多少个岛。
例如:
0 0 0 0 0 0 0 0 0
0 1 1 0 0 1 1 1 0
0 1 1 1 0 0 0 1 0
0 1 1 0 0 0 0 0 0
0 0 0 0 0 1 1 0 0
0 0 0 0 1 1 1 0 0
0 0 0 0 0 0 0 0 0
这张图上有三个岛。
0 0 0 0 0 0 0 0 0
0 1 1 0 1 1 1 1 0
0 1 1 1 1 0 0 1 0
0 1 1 0 0 0 0 1 0
0 0 0 0 0 1 1 1 0
0 0 0 0 1 1 1 0 0
0 0 0 0 0 0 0 0 0
这张图上有一个岛。
进阶:
如果可以使用并行计算,如何来设计你的算法?
代码实现:
package ex栈;
public class BingIslands {
public static int countIslands(