【发布时间】:2016-04-01 17:18:06
【问题描述】:
当我剖析我的代码逻辑时,它对我来说很有意义并且看起来应该可以工作。我需要使用递归查找并返回数组中的最小数字。这是我的代码
public static int findMin(int[] numbers, int start, int last)
{
int min = numbers[start]; // sets first value in array to minimum
if(numbers[start]<numbers[last]&& numbers[start]<min)
{ // if 1st value < last value in array and 1st value smaller than min, set min to first value
min = numbers[start];
}
else if(numbers[start]>numbers[last]&& numbers[last] < min)
{ // if 1st value > last value and last value < min, set min to last value
min = numbers[last];
}
else
{ // if 1st and last value are equal returns 1st value
return numbers[start];
}
// recursively calls... or not
findMin(numbers, start+1, last-1);
return min;
}
使用的输入是 33 -55、-44、12312、2778、-3、-2、53211、-1、44、0
输出获取:
最小数量为 0 线程“主”java.lang.ArrayIndexOutOfBoundsException 中的异常:-1 在 Assignment9.countEven(Assignment9.java:72) 在 Assignment9.countEven(Assignment9.java:87) 在 Assignment9.main(Assignment9.java:34)
预期:-55
我假设我的递归调用放置不正确。请帮忙,谢谢。
【问题讨论】: