Leetcode--695. 岛屿的最大面积
給定一個包含了一些 0 和 1的非空二維數組?grid?, 一個?島嶼?是由四個方向 (水平或垂直) 的?1?(代表土地) 構成的組合。你可以假設二維矩陣的四個邊緣都被水包圍著。
找到給定的二維數組中最大的島嶼面積。(如果沒有島嶼,則返回面積為0。)
示例 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]]
對于上面這個給定矩陣應返回?6。注意答案不應該是11,因為島嶼只能包含水平或垂直的四個方向的‘1’。
示例 2:
[[0,0,0,0,0,0,0,0]]
對于上面這個給定的矩陣, 返回?0。
注意:?給定的矩陣grid?的長度和寬度都不超過 50。
代碼:
class?Solution?{
????public?int?maxAreaOfIsland(int[][]?grid)?{
????????if(grid.length==0)
????????{
????????????return?0;
????????}
????????int?count=0;
????????for(int?i=0;i<grid.length;i++)
????????{
????????????for(int?j=0;j<grid[0].length;j++)
????????????{
????????????????if(grid[i][j]==1){
????????????????????count=Math.max(count,find(grid,i,j));
????????????????}
????????????}
????????}
????????return?count;
????}
????public?int?find(int?grid[][],int?rol,int?cow)
????{
????????if(rol<0||rol>=grid.length||cow<0||cow>=grid[0].length||grid[rol][cow]==0)
????????{
????????????return?0;
????????}
????????grid[rol][cow]?=?0;
????????return?find(grid,rol-1,cow)+find(grid,rol+1,cow)+find(grid,rol,cow+1)+find(grid,rol,cow-1)+1;
????}
}
總結
以上是生活随笔為你收集整理的Leetcode--695. 岛屿的最大面积的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第二章 数据的表示和运算 2.1.3 字
- 下一篇: CSMA/CD协议分析笔记