2023 HUAWEI OD マシン試験実際の質問編 B [戦場での敵の発見] JavaScript

トピック 

N×Mの大きさの戦場マップがあり、壁「#」によって異なる大きさのエリアに区切られており、上下左右の四方向に隣接する広場「.」が属している同じエリアに移動し、オープン スペースにのみ敵「E」が存在する可能性がある場合、敵の総数が K 未満であるエリアがマップ上にいくつあるかを要求します。
入力の説明
入力の最初の行は NMK です。N
はマップの行数を表し、M はマップの列数を表します。K はターゲットとなる敵の数
N を表します。M<=100 以降は、
NxM サイズの文字配列です。敵の数が K 個未満のエリアを
説明するために出力されます

例 1:

输入
3 5 2
..#EE
E.#E.

###..
出力
1
説明
マップは壁で 2 つのエリアに分かれており、左側のエリアには敵が 1 人、右側のエリアには敵が 3 人います。対象となるエリアの数は 1 つです。

一連の考え

1: 多くの問題バンクをブラッシングした後は、しっかりと記憶できるはずですが、これは明らかに DFS 検索の問題です。

2: 特定の位置が検索されておらず、「#」でない場合、DFS トラバースを開始できます。単一ソースの検索エリア、このエリア内の「E」(敵軍) の数 +1。横断が完了した後、敵軍の総数が k 未満の場合、結果 + 1。

3: 最初に私の解答を見ないで、手で見てみるのが最善です。より多くの問題を解く生徒の場合は、次のようにする必要があります。

Guess you like

Origin blog.csdn.net/misayaaaaa/article/details/131288328