695. Max Area of Island
来源:互联网 发布:2016成都程序员工资 编辑:程序博客网 时间:2024/06/05 00:20
Given a non-empty 2D array grid
of 0's and 1's, an island is a group of 1
's (representing land) connected 4-directionally (horizontal or vertical.) You may assume all four edges of the grid are surrounded by water.
Find the maximum area of an island in the given 2D array. (If there is no island, the maximum area is 0.)
Example 1:
[[0,0,1,0,0,0,0,1,0,0,0,0,0], [0,0,0,0,0,0,0,1,1,1,0,0,0], [0,1,1,0,1,0,0,0,0,0,0,0,0], [0,1,0,0,1,1,0,0,1,0,1,0,0], [0,1,0,0,1,1,0,0,1,1,1,0,0], [0,0,0,0,0,0,0,0,0,0,1,0,0], [0,0,0,0,0,0,0,1,1,1,0,0,0], [0,0,0,0,0,0,0,1,1,0,0,0,0]]Given the above grid, return
6
. Note the answer is not 11, because the island must be connected 4-directionally.Example 2:
[[0,0,0,0,0,0,0,0]]Given the above grid, return
0
.Note: The length of each dimension in the given grid
does not exceed 50.
这个题就是用DFS,可以用BFS试一下,在这里立一个flag!
class Solution {public: int maxAreaOfIsland(vector<vector<int>>& grid) { if (grid.size() == 0 || grid[0].size() == 0) return 0; int maxArea = 0; vector<vector<bool>> visited(grid.size(), vector<bool>(grid[0].size(), false)); for (int i = 0; i < grid.size(); i++) { for (int j = 0; j < grid[i].size(); j++) { if (grid[i][j] == 1 || visited[i][j] == false) { int result = 0; DFS(grid, visited, i, j, result); maxArea = max(maxArea, result); } } } return maxArea; // [1,1,0,0,0] // [1,1,0,0,0] // [0,0,0,1,1] // [0,0,0,1,1] } void DFS(vector<vector<int>>& grid, vector<vector<bool>>& visited, int i, int j, int& result) { if (i < 0 || j < 0 || i >= grid.size() || j >= grid[i].size() || grid[i][j] == 0 || visited[i][j] == true) { return; } else { if (visited[i][j] == false) { visited[i][j] = true; result++; DFS(grid, visited, i + 1, j , result);//down DFS(grid, visited, i , j + 1, result);//right DFS(grid, visited, i - 1, j , result);//up DFS(grid, visited, i , j - 1, result);//left } } }};
阅读全文
0 0
- 695. Max Area of Island
- 695. Max Area of Island
- 695. Max Area of Island
- 695. Max Area of Island
- 695. Max Area of Island
- 695. Max Area of Island
- 695. Max Area of Island
- LWC 53:695. Max Area of Island
- leetcode 695. Max Area of Island 解法
- [LeetCode] Algorithms-695. Max Area of Island
- DFS:695. Max Area of Island
- Leetcode 695. Max Area of Island
- LeetCode-695. Max Area of Island
- 695. Max Area of Island Difficulty: Easy
- LeetCode 695. Max Area of Island
- LeetCode-695. Max Area of Island
- [LeetCode] 695. Max Area of Island
- 【LeetCode】695. Max Area of Island
- 流水账笔记:PE文件格式(Dos Header)
- 同余性质
- KNN
- 693. Binary Number with Alternating Bits
- JSP--Java server Pages
- 695. Max Area of Island
- ubuntu下安装pcl
- Leetcode#1-Two Sum
- Java并发编程:volatile关键字解析
- 算法基础-枚举-编程题#1: 画家问题
- 欲修炼成架构师,必先……
- Random Forest
- Python 的错误、调试和测试
- thinkphp5 phpexcel导出导入