ビンゴゲームを知らない人のために、次のように遊びます
1) ランダムに印刷された数字の NXN マトリックスがあるビンゴ カードを取得します。たとえば、5x5 マトリックスがある場合、最大数も 75 にすることができます。しかし、数の範囲は 1 から M とあらかじめ決められています。
2) 人が 1 から M までの数字をランダムに発声します。
3) 番号がカードに記載されている場合は、その番号をクロスします。
4)数字を交差させるプロセスが繰り返されます.行全体または列全体、または2つの対角線を横切った場合、最初のビンゴを獲得できます行、N 列、および 2 つの対角線。
今、私はそれのためのアルゴリズムを作成したいと思います.ユーザーは乱数を入力し、アルゴリズムはそれらを聞き、マトリックス内のその数を交差させます(すでに提供されています).ビンゴを取得するとすぐにそれを宣言します.可能な限り最良のアプローチは何ですか
カードの2次元行列を維持してみました
数字が発表されたらO(N×N)時間で検索し、見つかったら0にする。
0 にした後、対応する行と列がすべてゼロになっているかどうかを検索します。対角線上にある場合は、対角線も検索します。O(3N) 時間かかります。
より良いアプローチはありますか?