バックトラッキングアルゴリズム
導入
バックトラッキング アルゴリズムは、アルゴリズム設計における手法の 1 つです。バックトラッキングは、問題に対する解決策を段階的に見つけて構築するための戦略です。バックトラッキング アルゴリズムは、問題を解決するために考えられる 1 つのアクションから開始し、そうでない場合は問題が解決されるまでバックトラックして別のアクションを選択します。
迷路で 3 つの分岐点に遭遇するようなものです。最初の分岐点を選択した後、道がふさがれていることに気づきました。元の地点に戻って 2 番目の道を選択するかなどを繰り返し、最終的に正しい分岐点を選択します。
バックトラッキングアルゴリズムに適している問題は何ですか?
- フォークがたくさんあります
- この道には行き止まりがある、そして出口がある
- 通常、すべてのパスをシミュレートするには再帰を使用する必要があります
規範事例
シーン 1
フルアレイ
// 输入
const input = [1, 2, 3]
// 输出
const output = [
[1, 2, 3],
[1, 3, 2],
[2, 1, 3],
[2, 3, 1],
[3, 1, 2],
[3, 2, 1]
]
ステップ:
- 再帰を使用してすべての終了ケースをシミュレートする
- 繰り返しの要素を含む状況に遭遇した場合は、バックトラックします。
- 再帰の最後に到達するすべてのケースを収集して返す
元リンク:菜園フロントエンド