当前位置:网站首页>高频leetcode深搜部分:695. 岛屿的最大面积
高频leetcode深搜部分:695. 岛屿的最大面积
2022-07-21 17:53:00 【嗝~~~~】
695. 岛屿的最大面积
难度中等702
给你一个大小为 m x n 的二进制矩阵 grid 。
岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在 水平或者竖直的四个方向上 相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。
岛屿的面积是岛上值为 1 的单元格的数目。
计算并返回 grid 中最大的岛屿面积。如果没有岛屿,则返回面积为 0 。
示例 1:
输入:grid = [[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]]
输出:6解释:答案不应该是 11 ,因为岛屿只能包含水平或垂直这四个方向上的 1。
示例 2:
输入:grid = [[0,0,0,0,0,0,0,0]]输出:0
提示:
- m == grid.length
- n == grid[i].length
- 1 <= m, n <= 50
- grid[i][j] 为 0 或 1
思路
- 与剑指 Offer 13. 机器人的运动范围本质一样,都是图的深搜,向四个方向的遍历
- 本题需要获得每个岛的大小,最后比较
代码
class Solution {
public:
int dfs(vector<vector<int>>& grid,int i,int j){
//越界条件
if(i<0||i>=grid.size()||j<0||j>=grid[0].size()||grid[i][j]==0) return 0;
grid[i][j]=0;
return 1+dfs(grid,i,j-1)+dfs(grid,i+1,j)+dfs(grid,i-1,j)+dfs(grid,i,j+1);
}
int maxAreaOfIsland(vector<vector<int>>& grid) {
int count,max;
for(int i=0;i<grid.size();i++){
for(int j=0;j<grid[0].size();j++){
count=0;
if(grid[i][j]==1)
count=dfs(grid,i,j);
if(max<count)
max=count;
}
}
return max;
}
};
边栏推荐
- Analysis of copyonwritearraylist
- Parallelism and concurrency
- Array of C language
- Axure 中继器
- Introduction to class loader
- OpenGL drawing coordinate axis indicator
- 使用Harry过程中FAQ(问题解答)
- Linux shell variable declaration Scheduled tasks, regular database backup, automatic backup
- jupyter notebook中切换虚拟环境
- JDBC transaction operation
猜你喜欢
随机推荐
从103个数中找到出现一次的那三个数
基于RedisTemplate封装的工具类
上市公司环境数据集:环境绩效明细表、排放明细表、资源消耗明细表等多项指标数据
华泰证券渠道开户安全吗,怎么看是不是正规
Laravel installs the debugbar toolbar and configures the virtual host
Failed to push the solo article to the community side
前辈的前后台分离介绍
正则表达式的表示及基本应用
各地级市-进出口与贸易差额(2000-2020)
Docker系列 六. Docker 安装 Redis
正则 ^ $ 有什么用
英语四级词汇
拼写单词~
图片懒加载
1978-2021中国统计年鉴、2003-2019(省、市面板数据)、1999-2019(县域面板数据)
c语言之指针(四)
c语言之指针(二)
Redis原理之BigKey和热点Key
String 类
使用Harry过程中FAQ(问题解答)