LeetCode - 200. 岛屿数量
程序员文章站
2024-03-18 09:03:04
...
200. 岛屿数量
给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。
岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。
此外,你可以假设该网格的四条边均被水包围。
解题思路: 此题考查图的遍历,图的遍历自然有两种写法,这里写出DFS代码。
class Solution {
public:
void helper(vector<vector<char>>& grid, int r, int c) {
int n = grid.size(), m = grid[0].size();
if (r < 0 || r >= n || c < 0 || c >= m || grid[r][c] == '0') return;
grid[r][c] = '0';
helper(grid, r + 1, c);
helper(grid, r - 1, c);
helper(grid, r, c + 1);
helper(grid, r, c - 1);
}
int numIslands(vector<vector<char>>& grid) {
if (grid.empty() || grid[0].empty()) return 0;
int res = 0, n = grid.size(), m = grid[0].size();
for (int i = 0; i < n; ++i) {
for (int j = 0; j < m; ++j) {
if (grid[i][j] == '1') {
helper(grid, i, j);
++res;
}
}
}
return res;
}
};
上一篇: Apache Zeppelin介绍&安装
下一篇: Zeppelin 0.8.2安装
推荐阅读
-
【LeetCode】 200. 岛屿数量
-
LeetCode - 200.岛屿数量
-
LeetCode - 200. 岛屿数量
-
3月打卡活动第15天 LeetCode第695题:岛屿的最大面积(中等)
-
LeetCode:Count Primes - 统计质数数量
-
LeetCode 204[Python]. 计数质数 统计所有小于非负整数 n 的质数的数量。 示例 1: 输入:n = 10 输出:4
-
Leetcode刷题记录——452、用最少数量的箭引爆气球
-
leetcode 452. 用最少数量的箭引爆气球 中等 贪心
-
C++实现LeetCode(200.岛屿的数量)
-
岛屿数量(经典 DFS 和 BFS 高频题 商汤、字节面试题)