これは、famousハレとタートル法を使用してリンクリストのサイクルを検出する場合の問題ではありません。リンクリストのサイクル検出:網羅的な理論
Hare & Tortoiseメソッドでは、1xと2xの速度でポインタが動作していることを確認して、最も効率的な方法とその順序がO(n)であることを確信しています。
問題は、私は移動速度が斧(回x)とBxの(B回のx)とAであるときに、2つのポインタが常に満たすことが可能であることの証明(証明または反証)を思い付くする必要がありますはAとBが等しくない。ここで、AとBはサイクルが存在するリンクリスト上で動作する2つのランダムな整数である。
これは私が最近出席したインタビューの1つで尋ねられました。私はそれが可能かどうか自分に包括的に証明できませんでした。どんな助けもありがたい。
"この新しいシーケンスには、オリジナルのシーケンスがあればサイクルがあります。" - これはfalseです。 –
@ n.m .: Uh?リンクされたリストの場合、ループバックのプロパティは、 'x'個の項目ごとにステップオーバーすれば変更されません。どちらの場合も、両方の場合(サイクルがある)、または「n」または「n/x」のステップの後で停止する(サイクルがない)場合は、ステッピングを永遠に続けます。もちろん、元のサイクルの長さが 'k 'の場合、サイクル長は必ずしも' k/x'にはならないでしょう...しかしこれは引数とは無関係です。 – 6502
申し訳ありませんが、私は間違っていました。これは偽ではありません。私はこの声明を誤解した。 –