Number of Islands
来源:互联网 发布:紫薇斗数排盘软件 编辑:程序博客网 时间:2024/06/05 06:21
题目
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:
11110110101100000000
Answer: 1
Example 2:
11000110000010000011
Answer:3
思路
思路很简单,在访问一个是’1’的点之后,修改其为’2’或者别的字符,然后再看周围是否为’1’,这样所有判断之后,就会确定一个岛
之前想过是不是可以只判断下边和右边,这样会简化很多,但是发现自己想错了,比如这种情况:
111111000100010100011100
如果只判断下边和右边,结果是2个岛,但其实是1个
代码
public class Main { static int NumOfIslands(char[][] grid){ 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'){ Search(grid , i, j); count++; } } } return count; } static void Search(char[][] grid, int i, int j){ // 超出边界或者不是 '1',直接返回 if(i < 0 || i >= grid.length || j < 0 || j >= grid[0].length || grid[i][j] != '1') return; grid[i][j] = '2'; Search(grid, i-1, j); // 上边 Search(grid, i+1, j); // 下边 Search(grid, i, j-1); // 左边 Search(grid, i, j+1); // 右边 } public static void main(String[] args) { char a[][] = {{'1','1','1','1','0'}, {'1','1','0','1','0'}, {'1','1','0','0','0'}, {'0','0','0','0','0'}}; char b[][] = {{'1','1','0','0','0'}, {'1','1','0','0','0'}, {'0','0','1','0','0'}, {'0','0','0','1','1'}}; char c[][] = {{'1','1','1','1','1','1'}, {'0','0','0','1','0','0'}, {'0','1','0','1','0','0'}, {'0','1','1','1','0','0'}}; System.out.println(NumOfIslands(a)); System.out.println(NumOfIslands(b)); System.out.println(NumOfIslands(c)); }}
阅读全文
0 0
- Number of Islands
- Number of Islands
- Number of Islands
- [LeetCode] Number of Islands
- Leetcode-Number of Islands
- Number of Islands
- Leetcode Number of Islands
- [LeetCode]Number of Islands
- Number of Islands
- Number of Islands
- [leetcode]Number of Islands
- [leetcode] Number of Islands
- leetcode Number of Islands
- leetcode:Number of Islands
- [leetcode] Number of Islands
- 200 Number of Islands
- [LeetCode] Number of Islands
- Number of Islands
- python:pandas(5),层次化索引
- 所见即所得:四款免编程移动游戏开发引擎推荐
- 作业
- Codeforces847K Travel Cards
- PHP实现限制域名从而保护源代码不被拷贝
- Number of Islands
- Python入门系列9:set 集合
- maven配置
- Codeforces847M Weather Tomorrow
- Calandar、Date、String之间的相互转化
- 作业
- 2017-2018 ACM-ICPC, NEERC解题报告
- 关于各大协议
- 作业1