200. Number of Islands
来源:互联网 发布:淘宝店铺导航全屏代码 编辑:程序博客网 时间:2024/06/03 21:22
200. Number of Islands
题目:
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:
11110110101100000000Answer: 1
Example 2:
11000110000010000011Answer: 3
代码如下:
class Solution {public: int numIslands(vector<vector<char>>& grid) { int row = grid.size(); if (row == 0) return 0; int col = grid[0].size(), num = 0; for (int i = 0; i < row; i++) { for (int j = 0; j < col; j++) { if (grid[i][j] == '1') { ++num; searchOne(grid, i, j); } } } return num; } void searchOne(vector<vector<char>>& grid, int a, int b) { if (a < 0 || a >= grid.size() || b < 0 || b >= grid[0].size() || grid[a][b] == '0') return; grid[a][b] = '0'; searchOne(grid, a + 1, b); searchOne(grid, a - 1, b); searchOne(grid, a, b + 1); searchOne(grid, a, b - 1); }};
解题思路:
- 采用深度优先搜索;
- 若与当前点上下左右相邻且值为1则视为在同一个岛,那么,当前点值为1时,不妨遍历它周围的所有点,并将所有与它相邻的值为1的点都变为0,递归下去;
- 那么所有搜索到的单个的1值,即上一个1值所没有搜索到的,说明不连续;
- 则所有1的个数即为岛的个数。
阅读全文
0 0
- 200. Number of Islands
- 200. Number of Islands
- 200. Number of Islands
- 200. Number of Islands
- 200. Number of Islands
- 200. Number of Islands
- 200. Number of Islands
- 200. Number of Islands
- 200. Number of Islands
- 200. Number of Islands
- 200. Number of Islands
- 200. Number of Islands
- 200. Number of Islands
- 200. Number of Islands
- 200. Number of Islands
- 200. Number of Islands
- 200. Number of Islands
- 200. Number of Islands
- javascript--通过循环生成A、B、C、D
- 6/28
- aa
- 寻找好的估计量
- codeforces 820A Mister B and Book Reading
- 200. Number of Islands
- shell脚本编程实例--进度条,求和&平均值,斐波那契,改变字符串大小顺序
- JDK1.7安装流程配置图文教程
- 《neural network and deep learning》题解——ch01 神经网络
- 基础的mysql语言(上)
- HTML总结(1)
- webrtc在window下编译x86版本
- linux下shadowsocks 的安装
- 20、react之 路由