C++ 岛屿的最大面积
2021/12/27 17:07:47
本文主要是介绍C++ 岛屿的最大面积,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
//给定一个用 n*m 矩阵表示的群岛的地图,其中 1 表示岛屿, 0 表示海洋,每个岛屿的水平或竖直方向相邻的岛屿可以视为连在一起的岛屿,每一块岛屿视为面积为 1 ,请问面积最大的岛屿是多少。 //方法关键:深度优先遍历、边界检测 void IslandDFS(vector<vector<int> >& grid, int row, int col, int& n, int& m, int &num) { ++num;//该区域加一 grid[row][col] = 0;//表示以检查 if (row > 0 && grid[row - 1][col] == 1)//检测左边 { IslandDFS(grid, row - 1, col, n, m, num); } if (row < n && grid[row + 1][col] == 1)//检测右边 { IslandDFS(grid, row + 1, col, n, m, num); } if (col > 0 && grid[row][col - 1] == 1)//检测上边 { IslandDFS(grid, row, col - 1, n, m, num); } if (col < m && grid[row][col + 1] == 1)//检测下面 { IslandDFS(grid, row, col + 1, n, m, num); } } int maxAreaIsland(vector<vector<int> >& grid) { int n = grid.size() - 1; if (n < 0) return 0; int m = grid[0].size() - 1; int result = 0; //遍历检测每个点 for (int row = 0; row <= n; row++) { for (int col = 0; col <= m; col++) { if (grid[row][col])//将该包含该点的区域的面积 { int areaNum = 0; IslandDFS(grid, row, col, n, m, areaNum); if (areaNum > result) result = areaNum; } } } return result; }
这篇关于C++ 岛屿的最大面积的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-01lip-sync公司指南:一文读懂主要玩家和技术
- 2024-11-01Anthropic的新RAG方法——提升大型语言模型在特定领域的表现
- 2024-11-01UniApp 中组件的生命周期是多少-icode9专业技术文章分享
- 2024-11-01如何使用Svg Sprite Icon简化网页图标管理
- 2024-10-31Excel数据导出课程:新手从入门到精通的实用教程
- 2024-10-31Excel数据导入课程:新手入门指南
- 2024-10-31RBAC的权限课程:新手入门教程
- 2024-10-31Svg Sprite Icon课程:新手入门必备指南
- 2024-10-31怎么配置 L2TP 允许多用户连接-icode9专业技术文章分享
- 2024-10-31怎么在FreeBSD上 安装 OpenResty-icode9专业技术文章分享