コードは次のとおりです。Javaは、単一の番号を返すように私にできるので2D配列内の要素の位置を返す再帰的
int rowCount = 0;
int columnCount = 0;
Pair p = new Pair(0, 0);
public Pair search2D(int[][] data, int element) {
if(data[rowCount].length==columnCount)
{
rowCount++;
columnCount=0;
}
if(data.length > rowCount)
{
if(data[rowCount][columnCount] == element)
{
p = new Pair(rowCount, columnCount);
}
else
{
columnCount++;
search2D(data, element);
}
}
return p;
}
「対」は、私が書いたクラスであります私は要素の位置を保持するインデックスを返そうとしています。私の主な方法で
、Iは
int[][] table = new int[][] { {3, 2, 8}, {3, 5, 6} };
System.out.println(r.search2D(table, 5));
System.out.println(r.search2D(table, 8));
しかしながら、出力の両方が(1,1)であるています。私はループを使用しないように言われています、誰かが正しい方向に私を指すことができるか、問題がどこにあるか教えてください?
@FallAndLearnはエラーを発生しませんが、テーブル内の8の位置は(1,1)ではありません。 – Nick
rowcountとcolumncountはどこで初期化されていますか? – FallAndLearn
メソッドrowCountおよびcolumnCountが定義されていない場合、それらはどこにありますか? –