2
我是一位通过codefights.org等编码和学习的新手。我偶然发现了这个问题:使用布尔来识别/隔离数组的元素(java)
======
找到一个给定的置换周期数。
例
对于置换= [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;
}
任务是用正确的代码替换//...//。我可以用我自己的方式编码,但不使用布尔数组。我不明白的是如何将布尔数组inCycle连接到排列数组。有人可以向我解释这里的if循环是什么意思吗?提前致谢。