【发布时间】:2015-12-31 07:26:50
【问题描述】:
我正在尝试使用分治法(递归)来查找数组中的最大数。但是当我编译这段代码时,我得到了 ArrayIndexOutOfBounds 异常。
我不确定我哪里出错了。这是我的代码 sn-p:
public class ... {
int[] A = {2,4,5,1,6,7,9,3};
int max;
public void solution() {
max = findMax(0, A.length-1);
//print max
}
private int findMax(int a, int b){
if(b-a == 1){
return A[a]>A[b] ? A[a] : A[b];
}
else if(a==b){
return A[a];
}
return findMax(findMax(a, (a+b)/2), findMax((a+b)/2 +1, b));
}
}
【问题讨论】:
-
哪一行?您是否尝试过使用调试器?
标签: java recursion divide-and-conquer