10

次に例を示します(黒いものを数えます):

入力:

ここに画像の説明を入力してください

出力:

5 4 // 5 groups (4 squares each)
1 1 // 1 group containing 1 square

今のところ、私は反復のための苦痛以上のものを考えることはできません。これらのグループを再帰的に取得することは可能でしょうか?ありがとう

4

3 に答える 3

2

すべての黒い四角をノードとして設定します。黒い正方形の間の接続(正方形が隣り合っている場合)はエッジになります。

これにより、グラフが得られます。

グラフのDFSは、すべてのグループを取得します。DFSは本質的に再帰的であることに注意してください。

于 2012-10-15T18:58:41.830 に答える
0

最初は、各セルは「未訪問」です。

「未訪問」の黒いセルに出会うまで、セルを繰り返し処理します。その時点までにヒットした各白血球

黒いセルに当たったら、可能であればそれをすべての方向に「拡張」します(「塗りつぶし」と同様)。可能な限り展開し、訪問したすべてのセルを「訪問済み」としてマークします。それを行った後、感染した黒い細胞の数を数え、グループの大きさがわかります。グループを検出した後、次の「未訪問」の黒いセルに進みます。

于 2012-10-15T18:57:33.367 に答える
0

4連結性の連結成分ラベリングにアルゴリズムを使用できます

于 2012-10-15T19:03:45.437 に答える