私は他のリソースの中でもcodefights.orgを通じてコーディングと学習の初心者です。ブール値を使用して配列の要素を識別/分離する
======
与えられた順列のサイクル数を検索します。私はこの問題につまずきました。順列=ため
例
[1、3、2、6、4、5]、出力は permutationCycles(順列)= 3 *
int permutationCycles(int[] permutation) {
boolean[] inCycle = new boolean[permutation.length];
int result = 0;
for (int i = 0; i < permutation.length; i++) {
if (!inCycle[i]) {
int position = i;
while (!inCycle[position]) {
inCycle[position] = true;
position = //...// ;
}
result++;
}
}
return result;
}
タスクでなければなりません//...//を正しいコードに置き換えることです。私は自分の方法でこれをコード化できますが、ブール値の配列を使用しません。私が理解していないのは、boolean配列inCycleが置換配列にどのように接続されているかです。誰かが私にここのifループが何を意味するのかを説明することはできますか?前もって感謝します。