逆に申し訳ありませんが、本質的に、最初の真の要素を見つけてから、最後の有効な要素が見つかるまで循環的に後方に移動し、配列を循環的に逆方向にトラバースして真の最後の要素が見つかったら、循環的に前進し、false になるまでプッシュします。見つかった。
bool、int のペアの配列が与えられます。
配列には常に 4 つの要素があります。true の要素は循環的にリンクされます。例:
TFFT
TTFT
FFTT
FTTT
TFFF
FTTF
これらはすべて、私が持つことができる有効な配列です。それらに含まれる数は、これには重要ではありません (ペアの秒の値)。
私がしなければならないことは、真のものだけを保持することです。しかし、最後の有効な真の要素が最初になるように、正しい循環順序にとどまる必要があります。
例:私の配列が次の場合:
T 1
F 2
F 3
T 4
新しい配列は次のようにする必要があります。
T 4
T 1
別の例: 私の配列が次の場合:
F 1
T 2
T 3
F 4
新しい配列は次のようにする必要があります。
T 2
T 3
これは問題の単なる抽象的な例です。実際のコードは複雑で読みにくいです。でも、やり方さえわかれば大丈夫。
基本的に、最初の不連続要素から最後の連続要素まで時計回りに歩く必要があります。
ありがとう
編集: 循環的にリンクされているということは、4 番目と最初の要素が true の場合、それらは切断されておらず、不連続ではなく、3,4,1 は連続していると見なされることを意味します。
したがって、TFTT を使用している場合は、3、4、1 の順序にする必要があります。