は解決する問題である。がOでアルゴリズムを考え出す(N)ここ
Nドワーフがより背が高い人約メートル文を作る人 (例:ジェイソン<ティム、バートン<ジェイソンなど)、ドワーフの中には秩序について嘘をついて、間違った声明を出すことがあるので、ドワーフのサイズを適切に並べることができるかどうかを確認する仕事です。矮星が嘘をついた場合の結果は、 "可能"または "不可能"のいずれかです。
これまで私は、ドワーフ自身の名前と彼よりも背の高いドワーフの名前を教えてくれるドワーフ(矮星のクラスを持つ)の有向グラフを想像するという考えを理解しています。これはスパニングツリーであると考えられるので、グラフにサイクルが含まれている場合、結果は "不可能"になります。
これをO(n)ランタイムでどのように管理できますか?私はすでに多くのfor-loopとrecursionを使っていくつかのものを試しましたが、この問題の大規模なケースを処理するには適切でないか、あまり時間がかかるでしょう。私は後で、O(n)ランタイムでアルゴリズムを理解するように言われました。
特定のランタイムで問題を解決する必要があるときに、自分の考え方をどのように変えるべきかを知りたいと思います。
(詳細hereを)存在するかどうかを確認することができますこれは自分自身で – JinseiNagai