これはインタビューの質問です:
行列の場合、1 つのエントリに 1 を追加すると、周囲のすべてのエントリ (上、下、左、右) にも 1 が追加されるという操作を定義します。正の行列が与えられた場合、その行列がは、そのような操作を使用してゼロ行列から構築されます。
問題を解決するための効率的なアルゴリズムは何ですか?
現在考えられるのは、バックトラッキングを使用して可能なすべての組み合わせを試すことですが、これは明らかに効率的ではありません。質問は消灯ゲームのようなものですが、ここでは 0/1 ではないため、より複雑になります。
ありがとう。
編集:
例えば:
3 3 can be constructed from 0 0 -> 1 1 -> 2 2 -> 3 3
1 2 0 0 1 0 1 1 1 2