LeetCode-Number of Islands-解题报告
2015-07-08 19:13
483 查看
原题链接 https://leetcode.com/problems/number-of-islands/
Given a 2d grid map of
Example 1:
Answer: 1
Example 2:
Answer: 3
以前刷acm题的时候遇到过类似的, 用fillflood就可以解决。class Solution {
public:
int numIslands(vector<vector<char>>& grid) {
int cnt = 0;
for (int i = 0; i < grid.size(); ++i)
{
for (int j = 0; j < grid[i].size(); ++j)
{
if (grid[i][j] == '1')
{
dfs(grid, i, j, 'a');
cnt++;
}
}
}
return cnt;
}
void dfs(vector<vector<char>>& grid, int i, int j, char color)
{
if (i < 0 || j < 0 || j >= grid[0].size() || i >= grid.size())return;
if (grid[i][j] != '1')return;
grid[i][j] = color;
dfs(grid, i + 1, j, color);
dfs(grid, i - 1, j, color);
dfs(grid, i, j + 1, color);
dfs(grid, i, j - 1, color);
}
};
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:
11110 11010 11000 00000
Answer: 1
Example 2:
11000 11000 00100 00011
Answer: 3
以前刷acm题的时候遇到过类似的, 用fillflood就可以解决。class Solution {
public:
int numIslands(vector<vector<char>>& grid) {
int cnt = 0;
for (int i = 0; i < grid.size(); ++i)
{
for (int j = 0; j < grid[i].size(); ++j)
{
if (grid[i][j] == '1')
{
dfs(grid, i, j, 'a');
cnt++;
}
}
}
return cnt;
}
void dfs(vector<vector<char>>& grid, int i, int j, char color)
{
if (i < 0 || j < 0 || j >= grid[0].size() || i >= grid.size())return;
if (grid[i][j] != '1')return;
grid[i][j] = color;
dfs(grid, i + 1, j, color);
dfs(grid, i - 1, j, color);
dfs(grid, i, j + 1, color);
dfs(grid, i, j - 1, color);
}
};
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- C++联合体转换成C#结构的实现方法
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C++变位词问题分析
- C/C++数据对齐详细解析
- C++基于栈实现铁轨问题
- C++中引用的使用总结
- 使用Lua来扩展C++程序的方法
- C++中调用Lua函数实例
- Lua和C++的通信流程代码实例
- C与C++之间相互调用实例方法讲解
- C++ Custom Control控件向父窗体发送对应的消息
- C++中拷贝构造函数的应用详解
- C++去除输入行中空白的方法