任意の整数 N によって動的に作成される 2D 配列があります。最初に、配列内のすべての値を、数値「-1」を使用する「初期化されていない」ことを表す値に設定する必要があります。ただし、この 2D 配列を 1D 配列に変換し、すべての値を新しい 1D 配列のインデックスと等しくなるように割り当てたいと考えています。
public class Percolation {
private int[][] id;
private int[] array1D;
private int blocked = -1; //a number that doesn't exist in the array
// create N-by-N grid, with all sites blocked
public Percolation(int N){
id = new int[N][N];
for (int k = 0; k < N; k++)
{ for (int i = 0; i < N; i++) id[k][i] = blocked; }
}
// open site (row i, column j) if it is not already
public void open(int i, int j){
}
open メソッドでは、指定されたインデックスの値を 1D 配列の対応するインデックスに変更する必要があります。例えば:
[-1] [-1]
[-1] [-1]
その後、次のようになります。
[0] [1] [2] [3]
残念ながら、これは宿題なので、インデックスを値として持つ新しい 1D 配列を作成するために、グリッド サイズ "N" を共有する方法がわかりません。