アニメーションアルゴリズムを見る:リング検出アルゴリズム-フロイトのウサギとカメ

前書き

リングの検出は非常に一般的なアルゴリズムの問​​題であるはずです。リングの問題があるかどうかを判断する方法は?

非常に簡単な方法は、HashSetを使用して、トラバースするデータを保存することです。重複がある場合、リンクリストにリングがあることがわかります。ただし、このメソッドは、通過したすべての要素を保存する必要があるため、空間の複雑さはo(n)です。

以前の要素を保存せずにループがあるかどうかを判断する方法はありますか?

フロイトのウサギとカメのアルゴリズムを見てみましょう。

フロイトについて

一部のクラスメートは、知らないフロイト(ジークムントフロイト)、夢の分析の作者、有名な心理学者、および精神分析学校の創設者と言います。

しかし、ここで話しているフロイトのフルネームはロバートWです。ジグムントフロイトの代わりにフロイド(ロバートフロイト)。

Robert Freudは、コンピューターサイエンティストであり、チューリング賞を受賞し、アサーション前および後のメソッドの創設者であり、ヒープソートアルゴリズムとフロイドワーシャルアルゴリズムの創設者の1人です。

1978年にチューリング賞を受賞し、「独学のコンピュータサイエンティスト」です。

このウサギとカメのアルゴリズムは、彼が発明したリング検出アルゴリズムです。

リングを作る

おすすめ

転載: blog.csdn.net/superfjj/article/details/108746958