以下に示すように、次元m*nのテーブルがあります。
2 6 9 13
1 4 12 21
10 14 16 -1
このテーブルに関するいくつかの制約:
- 各行の要素は昇順で並べ替えられます(自然順序付け)。
- -1は、セルが計算の目的で重要ではないこと、つまり、そこに要素が存在しないことを意味します。
- -1の後に要素を連続して表示することはできません。
- すべてのセルは、0からNまでの正の数または-1のいずれかを持つことができます。
- 2つのセルが同じ正の数を持つことはありません。つまり、-1は複数回出現できますが、他の数は出現できません。
質問:テーブルからn個の数値のセットSを見つけたいと思います。このセットには、各行の数値が1つだけ含まれている必要があり、max(S)-min(S)は可能な限り小さくなっています。
たとえば、上記の表からS=12,13,14になります。
これが解決できれば本当にありがたいです。私の解決策は複雑で、時間がかかり O(m^n)
、これは多すぎます。最適なソリューションが必要です。