我正在学习递归,并且我需要创建一个递归方法来计算数组中特定数字的出现次数,例如:{1,2,3,4,4,5}中数字4的出现次数应该为2。我知道递归不是解决此问题的理想方法,使用endIndex也不是理想选择,但这只是教科书上的问题,我似乎无法解决。
我的方法不太好用,因为在处理大型数组时我总是会耗尽堆。如何优化这样的代码?谢谢!
我的方法不太好用,因为在处理大型数组时我总是会耗尽堆。如何优化这样的代码?谢谢!
public static int countNumber(int[] array, int startIndex, int endIndex, int
number) {
int result = 0;
if (startIndex==endIndex) {
return result;
}
if (array[startIndex] == number ) {
result++;
}
result = result + countNumber(array,startIndex+1,endIndex,number);
return result;
}