首页 > 试题广场 >

统计岛屿的数量

[编程题]统计岛屿的数量
  • 热度指数:190 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
一个n*m的地图上,有一些位置是陆地、一些位置是海洋。地图之外则全部被海洋所包围。求地图中岛屿的数量。
地图中用 ‘x’  字符表示陆地,  '.' 字符表示海洋
注:对于坐标为(x,y)的陆地,它仅与坐标为(x+1,y)、(x-1,y)、(x,y+1)、(x,y-1)这四个坐标的陆地相邻时才看作它们是相连的。斜方向不认为是相连的。
示例1

输入

[".xx..","...xx",".xxx.","x...x"]

输出

4

备注:
地图的长和宽均不大于1000
头像 牛客516598323号
发表于 2020-09-19 10:37:29
使用递归深度搜索,检测到一个陆地点就向四周探测是否有陆地相连,全部消去成为海洋。再寻找下一个陆地。O(n^2)了。用例通过率: 100.00% 运行时间: 1482ms 占用内存: 13820KB。 # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # 计算岛屿的数量 展开全文