1
這是來自我正在使用的一箇舊測試來研究。 我需要編寫一個遞歸方法,從位置0和右側返回int []的零個數。 int intOfZeroes(int [] a,int right);返回零的遞歸方法
這是來自我正在使用的一箇舊測試來研究。 我需要編寫一個遞歸方法,從位置0和右側返回int []的零個數。 int intOfZeroes(int [] a,int right);返回零的遞歸方法
這是假設right < a.length
int numberOfZeroes(int[] a, int right) {
if(right < 0) { // We've gone through all indices
return 0; // So we don't want to recurse anymore
} else if(a[right] == 0) { // The current index has a zero
return 1 + numberOfZeroes(a, right - 1); // Call the function, moving left one. Add one to the returned count since we found a zero
} else { // The current index does not have a zero
return numberOfZeroes(a, right - 1); // Call the function, moving left one. We don't add anything since we didn't find a zero
}
}
int numberOfZeroes(int[] a, int right) {
if (right == 0) return 0;
return numberOfZeros(a, right-1) + a[right] == 0 ? 0 : 1;
}
待辦事項numberOfZeros(一,則爲a.length),以獲得整個數組中零的個數。
「從0位置,右」 - 你的意思是 「0位置和'right'之間」? – schnaader 2011-03-07 00:26:42
好的。那麼到目前爲止你嘗試過了什麼? – 2011-03-07 00:26:51
你能舉一個輸入和輸出的例子嗎?描述是一種觸摸混淆。 – doctorless 2011-03-07 00:28:50