0

行列が「いっぱい」かどうかを返すブール値メソッドを作成しようとしています

(フル サイトは、隣接する (左、右、上、下) オープン サイトのチェーンを介して、一番上の行のオープン サイトに接続できるオープン サイトです。)

グリッドの場合、true = オープン サイト

私はまだ再帰を学んでおり、迷路を解くためにDFSが使用されていることをどこかで読んだので、そのルートを試しています...

現在、そのスポットが訪問されたかどうかを追跡するために、同じサイズのマトリックスを追加しました。私は方法を見つけようとしています。最初の場所が与えられたら、再帰を使用して一番上の行にトラバースできるかどうかを確認します..

私はこれが間違っていることを知っています、誰かの助けが私を導くことができます. 私は今立ち往生していて、ちょっとイライラしています。これは私がこれまでに得たものです

private boolean [][] grid;
private boolean [][] visited;
private int size;

public boolean isFull(int i, int j)
{
    int row = i-1;
    int col = j-1;


    //base cases        
    if(row < 0 || row > size || col < 0 || col > size) {
        throw new IndexOutOfBoundsException("Out of Bounds Exception");
    }

    if(row == 0) {
        return true;
    }

    if(visited[row][col]) {
        return false;
    }

    visited[row][col] = true;

    //top
    isFull(row, col-1);
    //bot
    isFull(row, col+1);
    //left
    isFull(row-1, col);
    //right
    isFull(row+1, col);

    return false;
}
4

1 に答える 1