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循環是什麼意思嗎?提前致謝。