必要なアルゴリズムの配列を計算
-
20-09-2019 - |
質問
うことにより問題の解決の問題が私のようなもの
- A>B
- B>C
- B>D
- C>D
というの答えとしてA>B>C>D.
この問題
- になると出力はすべて参加します。
- 問題のない採用の入力端子が付いています。例えば、A>B)(C>D)が偽の入力に対してできないための出力に出力します。
- の入力で任意のサイズが偽りであることをどのように解消するか、また
だ解決のためにこの最適化をJavaを使用します。他のヒント/どのヒント大歓迎です。
感謝。
解決
これは、トポロジカルソートと呼ばれています。 http://en.wikipedia.org/wiki/Topological_sortingする
あなたがあなた自身にあなたの宿題を完了することができるはず、ということを考えるます。
他のヒント
私は
...あなたにこのクラスでは、最近カバーグラフを賭けています
どのようにグラフがここにも適用することができると思いますか?
あなたは1つが、問題入力(A> B>、A> D、C> Aなど)に基づいて建設する構造を考えることができますか?たぶん、有向グラフのいくつかの種類...
問題は、このようなグラフで表現されると、解決策はこのグラフをナビゲート伴うだろう...
あなたはList
でそれらを置く作業を開始します。リストがソートされますので、n
thペア(a, b)
のために、あなたはバイナリ検索を使用して、a
を見上げます。それはスキップ既に存在する場合は、適切な時点で中に挿入した場合ではありません。 a > b
ので、あなたはリストの残りの部分でb
で再びそれを行います。このヘルプを願っています。
あなたが入力のマップと返されたリストに、それの答えを追加して、再帰的方法でこれを行うことができますあなたが答えを返却する場合の前< (末尾のリスト)だけ.reverse(またはすることができます。)返されたリストに-pendingするD-> C-> B-> A際に完全に逆転されてから答えを防ぐことができます> /強いテストすることを忘れないでください再帰ブレーク条件のため。 (ヒント:鍵が見つからない)