繰り返しのない数字のシーケンスが与えられた場合、そのシーケンスのすべての可能な順列を返します。 例:
この質問はバックトラッキングアルゴリズムの典型的な応用シナリオである。1. アルゴリズム戦略 バックトラッキング アルゴリズムは、検索方法とヒューリスティック メソッドです。各ステップで選択を行います。この選択では期待される結果が得られないことが判明すると、バックトラックして新しい選択を行います。深さ優先探索はバックトラッキングアルゴリズムの考え方を使用します。 2. 適用可能なシナリオ バックトラッキング アルゴリズムは非常に単純で、解決策が見つかるまで試行を続けるだけです。このアルゴリズムの考え方により、幅探索問題、つまり一連の可能な解決策から要件を満たす解決策を選択する問題を解決するためによく使用されます。 3. コードの実装 配列[1, 2, 3]の完全な順列は次のように書くことができます。 まず、1 から始まる完全な順列を書きます。これらは、[1, 2, 3]、[1, 3, 2] であり、これは 1 + [2, 3] の完全な順列です。 2 から始まるすべての順列を書き出してみましょう。[2, 1, 3]、[2, 3, 1] は、2 + [1, 3] の完全な順列です。 最後に、3 で始まる順列をすべて書き出します。これらは [3, 1, 2]、[3, 2, 1] であり、これらは 3 + [1, 2] のすべての順列です。 それはバックトラッキングの考え方であり、列挙検索に多少似ています。すべての解決策を列挙し、期待を満たすものを見つけます。考えられる解決策を定期的にすべて列挙し、漏れや重複を避けるために、問題解決のプロセスを複数の段階に分けます。各ステージで、私たちは分岐点に直面します。ランダムにいずれかの道を選択します。この道が実行可能ではない (期待される解決策を満たしていない) とわかったら、前の分岐点に戻り、別の道を選択して続行します。 これは明らかに再帰的な構造です。
4. 複雑性分析時間計算量: O(n?n!)、ここでnはシーケンスの長さ これは順列と組み合わせです。各レベルでの順列と組み合わせの数は Amn=n!/(n?m)! なので、すべての順列は次のようになります。 A1n + A2n + … + An-1n = n!/(n?1)! + n!/(n?2)! + … + n! = n! * (1/(n?1)! + 1/(n?2)! + … + 1) <= n! * (1 + 1/2 + 1/4 + … + 1/2n-1) < 2 * n! また、各内部ノードは n 回ループするため、非リーフノードの時間計算量は O(n?n!) になります。
リートコード: https://leetcode-cn.com/problems/permutations/solution/quan-pai-lie-wen-ti-by-user7746o/ |
<<: 10億件の速達配送のピークを迎える中、Baidu OCRが物流企業のスピードアップにどのように貢献しているかをご覧ください。
人工知能を正しく使用するために、いくつかの提案があります。人工知能を実際に使用する際にこれらの提案を...
6月14日、プログラミングに関する質問と回答のウェブサイト「Stack Overflow」が発表し...
翻訳者 |陳俊レビュー | Chonglou異常検出は、企業が競合他社よりも先に今後のトレンドを特定...
「汎用人工知能」に関しては、OpenAIの科学者カルパシー氏が説明を行った。数日前、Karpathy...
従来の 3 チャンネル RGB 画像と比較すると、ハイパースペクトル画像には数十または数百のバンドが...
知能ロボットの誕生は、国内の多くの産業に新たな力をもたらしました。ロボットの導入により、サービス業は...
[[378652]]調査会社IDCが最近発表した「世界の人工知能支出ガイド」によると、世界の人工知能...
[[205087]]あまり巧妙になりすぎずに、機械学習の学術界に触れ、すでに業界に入った人間の視点...
インターネットとビッグデータ時代の到来により、リアルタイムのデータ同期は多くの企業が直面する課題とな...
ビデオの需要と視覚データの理解のための AI の使用が増加するにつれて、カメラの数と生成されるデータ...
Google待望の大躍進、 Gemini大型モデルがついに発売!最も目を引くのは、次の写真とビデオで...
[[439113]]人工知能により、非常に有用であることが証明された素晴らしいビデオ会議アプリケーシ...
ストレージ技術の破壊的変化は進行中であり、ハイパーコンバージド インフラストラクチャ (HCI) 市...