だから私は色の2次元配列を持っています。色は数字で表されます。現在、赤の番号1のみをチェックするdfsを作成しました。コードが正しいとは思いません。私は、それがあるノードの周りの隣人を取得し、それらをリストに追加する get neighbors を持っています。ボードは int の配列であり、訪問済みは、ノードが訪問された場合に true または false の配列です。これが私のdfsです:
private int dfs(int startRow, int startCol, int[][]boards, boolean[][] visitedd){
int f;
int t;
visitedd[startRow][startCol] = true;
for(; startRow < q; startRow++){
for(; startCol < q; startCol++){
if(boards[startRow][startCol] == 1 && visitedd[startRow][startCol] == false){
g+=1;
f = startRow;
t = startCol;
dfs(f, t, boards, visitedd);
}
}
}
return g;
get neighbors を使用して次の赤に適切にトラバースする方法がわかりません。