827。做一个大岛
难度: hard
>主题:数组,深度优先搜索,广度优先搜索,联合查找,矩阵
>您将获得一个n x n二进制矩阵网格。您最多可以更改为1。 返回在应用此操作后,网格中最大的
岛的大小。 island 是一个4个方向连接的1s。
>>示例1:
>输入: grid = [[1,0],[0,1]]>
> >输出:
4>输出:4
网格[i] [j]是0或1。
计算岛屿尺寸:当我们识别每个岛时,我们计算其大小并将其存储在键或阵列中,其中钥匙是岛id,值是岛的大小。
>返回结果
:最后,我们返回找到的最大尺寸。如果网格中没有0,我们返回最大的岛的大小。>让我们在php中实现此解决方案:
<?php
/**
* @param Integer[][] $grid
* @return Integer
*/
function largestIsland($grid) {
...
...
...
/**
* go to ./solution.php
*/
}
/**
* Helper function to perform DFS and calculate component size
*
* @param $grid
* @param $i
* @param $j
* @param $islandId
* @param $size
* @return void
*/
function dfs(&$grid, $i, $j, $islandId, &$size) {
...
...
...
/**
* go to ./solution.php
*/
}
// Example usage
$grid1 = [[1, 0], [0, 1]];
$grid2 = [[1, 1], [1, 0]];
$grid3 = [[1, 1], [1, 1]];
echo largestIsland($grid1) . "\n"; // Output: 3
echo largestIsland($grid2) . "\n"; // Output: 4
echo largestIsland($grid3) . "\n"; // Output: 4
?>
dfs traversal
翻转0
:
边缘案例:
如果网格完全是1s,则最大岛大小为总网格大小。
该解决方案有效地处理问题约束并提供了正确的结果。
联系链接
>
如果您想要这样的更多有用的内容,请随时关注我:>
github
以上就是做一个大岛的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号