给你一个大小为 m x n 的二进制矩阵 grid。 岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在 水平或者竖直的四个方向上 相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。 岛屿的面积是岛上值为  1 的单元格的数目。 计算并返回  grid 中最大的岛屿面积。如果没有岛屿,则返回面积为  0 。 上图的非蓝色块并且表示1的为岛屿

区块链毕设网qklbishe.com为您提供问题的解答

给你一个大小为 m x n 的二进制矩阵 grid。
岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在 水平或者竖直的四个方向上 相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。
岛屿的面积是岛上值为 1 的单元格的数目。
计算并返回 grid 中最大的岛屿面积。如果没有岛屿,则返回面积为 0 。
给你一个大小为 m x n 的二进制矩阵 grid。    岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在 水平或者竖直的四个方向上 相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。    岛屿的面积是岛上值为  1 的单元格的数目。     计算并返回  grid 中最大的岛屿面积。如果没有岛屿,则返回面积为  0 。         上图的非蓝色块并且表示1的为岛屿
上图的非蓝色块并且表示1的为岛屿
import java.util.Scanner;  /**  * @Author xujiasheng  * @Date 2023/10/26 0026 16:40  * @Description 岛屿的最大面积  */ public class Dydzdmj {     static int currentSize = 0;     public static void main(String[] args) {         Scanner in = new Scanner(System.in);         int maxSize = 0;         int m = in.nextInt();         int n = in.nextInt();         int [][] grid = new int[m][n];         for (int i = 0; i < m; i++) {             for (int j =0; j < n; j++) {                 grid[i][j] = in.nextInt();             }         }         for (int i = 0; i < m; i++) {             for (int j =0; j < n; j++) {                 if (grid[i][j] != 0) {                     count(grid,i,j,m,n);                 }                 if (currentSize > maxSize) {                     maxSize = currentSize;                 }                 //计数清零,重新计数                 currentSize = 0;             }         }         System.out.println(maxSize);     }     static void count (int [][] grid,int i,int j,int m,int n){         currentSize++;         grid[i][j] = 0;         //上         if ((i-1)>=0 && grid[i-1][j] != 0){             count(grid,i-1,j,m,n);         }         //下         if ((i+1)<=m-1 && grid[i+1][j] != 0){             count(grid,i+1,j,m,n);         }         //左         if ((j-1)>=0 && grid[i][j-1] != 0){             count(grid,i,j-1,m,n);         }         //右         if ((j+1)<=n-1 && grid[i][j+1] != 0){             count(grid,i,j+1,m,n);         }     } } 

递归清零同时计数

10:03

以上就是关于问题给你一个大小为 m x n 的二进制矩阵 grid。 岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在 水平或者竖直的四个方向上 相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。 岛屿的面积是岛上值为  1 的单元格的数目。 计算并返回  grid 中最大的岛屿面积。如果没有岛屿,则返回面积为  0 。 上图的非蓝色块并且表示1的为岛屿的答案

欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。

区块链NFT链游项目方科学家脚本开发培训

承接区块链项目定制开发

微信:btc9767

QQ :1330797917

TELEGRAM: BTCOK9

承接区块链项目定制开发


qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 给你一个大小为 m x n 的二进制矩阵 grid。 岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在 水平或者竖直的四个方向上 相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。 岛屿的面积是岛上值为  1 的单元格的数目。 计算并返回  grid 中最大的岛屿面积。如果没有岛屿,则返回面积为  0 。 上图的非蓝色块并且表示1的为岛屿