フロイドのサイクル検出アルゴリズムの実行時の複雑さを言及したオンラインソースによれば、O(n)です。 セイ、フロイドのサイクル検出の実行時の複雑さ
p = slow pointer
q = fast pointer
m = the distance from start of linked list to first loop node
k = the distance of the meeting point of fast and slow nodes from the first loop node
l = length of loop
rp = number of loop rotations by p before meeting q.
rq = number of loop rotations by q before meeting p.
実行時間の複雑さは、この値はO(N)であるどのよう= M + RP * 1 + K すべきですか?
スローポインタがnステップ以内で移動することが保証されるのはなぜですか? – user3740951
サイクルがある場合、両方のポインタがサイクルに入ると、高速ポインタはすべての反復で1ステップずつ「キャッチアップ」します。 「追いつく」ために必要な距離は、サイクルの長さの最大であるため、遅いポインターは、速いポインターが追いつく前に、周りの周りに2周目を開始することはできません。 – user2357112
ループが完了する前に遅いポインタが実際に追いつくという証拠をいくつか提出できますか? – user3740951