1

私はFloyd's Cycle Findingアルゴリズムを試していましたが、疑問がありました。

高速ポインターを 2 だけ増やしますか?

これに最適な他の値はありますか?

4

2 に答える 2

1

両方のポインターが循環して終了するとします。互いに相対的に、高速ポインターは反復ごとに低速ポインターに 1 単位ずつ近づいています。これは、ある時点でポインターがオーバーラップする必要があることを意味します。これは便利なプロパティです。

3 速と 2 速のポインターを使用して実行できると思いますが、それ以上は速くならず、コードはより複雑になります (各ステップで 2 つではなく 3 つのポインターのチェックを書き出す必要があります)。

于 2015-07-13T19:27:45.910 に答える
0

高速ポインターの値を 2 以上に増やすと、両方のポインターがオーバーラップする値を「スキップ」し、より多くの反復が必要になる可能性があります。

高速ポイントを 2 ずつ増やすことで、最悪のシナリオで効率を最大化することが保証されます。

于 2015-07-13T19:31:30.690 に答える