2658。グリッド内の魚の最大数
難易度: medium
トピック:配列、深さ第一検索、幅広い最初の検索、ユニオンファインド、マトリックス
0インデックス 2Dマトリックスグリッドがサイズm x nの2Dマトリックスグリッドを与えられます。ここで(r、c)
グリッド[r] [c] = 0、または細胞ですべての魚を捕まえます(r、c)、または 任意の隣接する
水隣接する細胞の細胞(r、c)は、細胞の1つ(r、c 1)、(r、c -1)、(r 1、c)または(rの1つです。 -1、c)存在する場合 例1:
input:grid = [[0,2,1,0]、[4,0,0,3]、[1,0,0,4]、[0,3,2,0] ]
output:7
grid = [[1,0,0,0]、[0,0,0,0]、[0,0,0,0]、[0,0,0,1] ]
output:1
0< = grid [i] [j]< = 10
問題は、漁師がグリッド内の任意の水セルから始めて捕まえることができる魚の最大数を見つけることです。漁師は、現在の細胞で魚を捕まえて、隣接する水セル(上、下、左、または右)に繰り返し移動できます。
各水セル(R、c)については、隣人が次の場合に再帰的に探索します。
グリッド境界内の
<?php /** * @param Integer[][] $grid * @return Integer */ function findMaxFish($grid) { ... ... ... /** * go to ./solution.php */ } /** * Helper function for DFS * @param $r * @param $c * @param $grid * @param $visited * @param $rows * @param $cols * @param $directions * @return array|bool|int|int[]|mixed|null */ function dfs($r, $c, &$grid, &$visited, $rows, $cols, $directions) { ... ... ... /** * go to ./solution.php */ } // Example 1 grid = [[0,2,1,0],[4,0,0,3],[1,0,0,4],[0,3,2,0]]; echo getMaxFish($grid); // Output: 7 // Example 2 $grid = [[1,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,1]]; echo getMaxFish($grid); // Output: 1 ?>
$grid = [ [0, 2, 1, 0], [4, 0, 0, 3], [1, 0, 0, 4], [0, 3, 2, 0] ];
リポジトリをGitHubにスターに提供するか、お気に入りのソーシャルネットワークで投稿を共有してください。あなたのサポートは私にとって大きな意味があります!
このようなもっと役立つコンテンツが必要な場合は、お気軽にフォローしてください:
以上がグリッド内の魚の最大数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。