次の制約を使用して、あるポイントから別のポイントまでトラバースしたい2D配列があります。
- 水平方向と垂直方向の移動のみが許可されます
- パスは、配列内のすべての必須ポイントに接続する必要があります
- アレイには障害物がありません
以下はグラフィック表現です。
+---+---+---+---+---+---+
| 0 | 0 | 1 | 0 | 0 | E |
+---+---+---+---+---+---+
| 0 | 1 | 1 | 0 | 1 | 0 |
+---+---+---+---+---+---+
| 0 | 0 | 0 | 0 | 0 | 0 |
+---+---+---+---+---+---+
| S | 0 | 1 | 0 | 0 | 0 |
+---+---+---+---+---+---+
アルゴリズムは、点 S から開始して、E に到達するための最短経路を見つけ、「1」で示されるすべての点に触れ、水平方向または垂直方向にのみ移動する必要があります。
Javascriptで実装する必要があります(ただし、C#またはJavaでも良いはずです。翻訳できると思います:))
私のニーズに最適なアルゴリズムはどれですか? 私はたくさんグーグルで検索しましたが、似ているが異なるいくつかのダイクストラまたはAスターの実装しか見つかりませんでした(必須のポイントに触れる必要はありません...)
誰かがそのような問題を経験しましたか?
誰か助けてくれませんか?
前もって感謝します