私は数字がスペースで区切られた(n x n)マトリックスを表すいくつかの数字を持つテキストファイルを入力する簡単なJavaプログラムを書いています。 EX用:私のデータを保存して操作するのに最適なデータ構造ですか?
1 2 3 4
5 6 7 8
9 1 2 3
4 5 6 7
私はその後、私はその後、adjecent数を比較すると、特定のルールに基づいて特定の番号を削除、含まれる(データを操作するために使用するデータ構造にこれらの番号を保存したい た場合。 。数がそれ以上の他のすべての数字はスペースの量を落下、削除された上記の例の場合 、私は8と9を削除して言うならば、結果は次のようになります。
() 2 3()
1 6 7 4
5 1 2 3
4 5 6 7
ので、数字が落ちます 最後に、与えられた行列は常に正方形です(したがってalwa ys n x n、nは常に与えられ、常に正である)、したがって、データ構造は、任意のn値を実質的に受け入れるために柔軟でなければならない。
私はもともと2次元配列で実装していましたが、効率を向上させるために使用できるデータ構造がより優れているというアイディアがあれば、私は迷っていました。 (行と列)の隣の数字 最終的に、muプログラムは自動的に隣の数字をルールと照らし合わせてチェックし、数字を削除し、マトリックスをフォーマットし直していきます。任意のn×nの行列のために、可能な限り移動の最小量で可能なマトリックスからのような多くの番号を削除することAIを作成する。