私はFloyd's Cycle Findingアルゴリズムを試していましたが、疑問がありました。
高速ポインターを 2 だけ増やしますか?
これに最適な他の値はありますか?
私はFloyd's Cycle Findingアルゴリズムを試していましたが、疑問がありました。
高速ポインターを 2 だけ増やしますか?
これに最適な他の値はありますか?
両方のポインターが循環して終了するとします。互いに相対的に、高速ポインターは反復ごとに低速ポインターに 1 単位ずつ近づいています。これは、ある時点でポインターがオーバーラップする必要があることを意味します。これは便利なプロパティです。
3 速と 2 速のポインターを使用して実行できると思いますが、それ以上は速くならず、コードはより複雑になります (各ステップで 2 つではなく 3 つのポインターのチェックを書き出す必要があります)。
高速ポインターの値を 2 以上に増やすと、両方のポインターがオーバーラップする値を「スキップ」し、より多くの反復が必要になる可能性があります。
高速ポイントを 2 ずつ増やすことで、最悪のシナリオで効率を最大化することが保証されます。