【编程习题★★★☆☆】计算岛屿的数量

原创 2015年07月09日 11:43:07

题目:用一个N*N的矩阵来表示一张地图,其中0位海洋,1位陆地。被0保围起来的所有1组成岛屿。试计算矩阵中岛屿的数量。

示例:

1 0 0 0 1 1 0 0

1 1 0 1 0 0 1 0

1 1 1 1 0 0 1 1

0 0 0 1 0 0 1 0

输出:3

分析:以每一元素作为起点进行一次深度优先遍历,将所遇到的1全部标记为0,无法进行下去时,计数器加一,代表搜索完一座岛屿,依次类推。

JAVA:

public int numIslands(char[][] grid) {
		if (grid != null) {
			int count = 0;
			for (int i = 0; i < grid.length; i++) {
				for (int j = 0; j < grid[0].length; j++) {
					if (grid[i][j] == '1') {
						measureIsland(grid, i, j);
						count++;
					}
				}
			}
			return count;
		}
		return 0;
	}

	private void measureIsland(char[][] grid, int i, int j) {

		if (grid[i][j] != '0') {
			grid[i][j] = '0';

			if (i != 0)
				measureIsland(grid, i - 1, j);
			if (j != 0)
				measureIsland(grid, i, j - 1);
			if (i != grid.length - 1)
				measureIsland(grid, i + 1, j);
			if (j != grid[0].length - 1)
				measureIsland(grid, i, j + 1);
		}
	}


版权声明:本文为博主原创文章,未经博主允许不得转载。

Lintcode解题笔记 - 岛屿的个数

原文链接: http://www.lintcode.com/zh-cn/problem/number-of-islands/给一个01矩阵,求不同的岛屿的个数。0代表海,1代表岛,如果两个1相邻,那么...
  • xiewenjiang110
  • xiewenjiang110
  • 2015年07月08日 21:08
  • 1407

LintCode 岛屿的个数

算法 lintcode 岛屿
  • u012762106
  • u012762106
  • 2015年08月22日 23:06
  • 1938

51nod 1276 岛屿的数量(锻炼思维的好题)

有N个岛连在一起形成了一个大的岛屿,如果海平面上升超过某些岛的高度时,则这个岛会被淹没。原本的大岛屿则会分为多个小岛屿,如果海平面一直上升,则所有岛都会被淹没在水下。 给出N个岛的高度。然后有Q个查询...
  • caduca
  • caduca
  • 2015年09月01日 20:57
  • 4157

计算机三级★南开百题☆精华整理版

  • 2014年12月30日 23:40
  • 69KB
  • 下载

★☆【平衡二叉树】【倍增】会议中心

Siruseri政府建造了一座新的会议中心。许多公司对租借会议中心的会堂很感兴趣,他们希望能够在里面举行会议。 对于一个客户而言,仅当在开会时能够独自占用整个会堂,他才会租借会堂。会议中心的销售主管认...
  • Whjpji
  • Whjpji
  • 2012年03月30日 11:35
  • 5633

★☆【启发式搜索】【图论】Remmarguts' Date

Description "Good man never makes girls wait or breaks an appointment!" said the mandarin duck fathe...
  • Whjpji
  • Whjpji
  • 2012年03月19日 21:48
  • 626

Numpy练习100题--难度★☆☆

Numpy练习100题--难度★☆☆
  • u010529144
  • u010529144
  • 2017年05月08日 21:31
  • 1062

hdu 5200 Trees 排序+思维? ★★☆

Trees Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Subm...
  • yskyskyer123
  • yskyskyer123
  • 2015年12月17日 16:21
  • 279

★【世龙最爱之作】☆【丑丫头变身美女校花,不恋情的人懊恼,可是有了爱情之后更烦恼】第七十九章★

丑丫头变身美女校花第七十九章   全部烧烤大餐,终极仍是以快活满意的主旋律,在一个半小时之后完善的停止了。合法大家都整理筹备散场的时候。   沈芳突然道:“要不,大家去唱歌吧?”  ...
  • aikubaobao1
  • aikubaobao1
  • 2012年10月25日 15:34
  • 2242

★☆图片免费上传☆★

  • 2009年06月11日 21:44
  • 278B
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【编程习题★★★☆☆】计算岛屿的数量
举报原因:
原因补充:

(最多只允许输入30个字)