Java indexOfMaxInRange返回错误的号码?
我有一个方法,它应该返回具有最高值的数组的索引::Java indexOfMaxInRange返回错误的号码?,java,arrays,recursion,Java,Arrays,Recursion,我有一个方法,它应该返回具有最高值的数组的索引:: 公共静态int-indexOfMaxInRange(int[]a,int-lowIndex,int-highIndex){ 如果((高索引-低索引)==0){ 回归高指数; }如果(a[lowIndex]>=a[highIndex]){ 返回最大范围(a,低索引,高索引-1); }否则{ 返回最大范围(a,低索引+1,高索引); } } 公共静态void main(字符串[]args){ int[]a=新的int[5]; a[0]=4;
公共静态int-indexOfMaxInRange(int[]a,int-lowIndex,int-highIndex){
如果((高索引-低索引)==0){
回归高指数;
}如果(a[lowIndex]>=a[highIndex]){
返回最大范围(a,低索引,高索引-1);
}否则{
返回最大范围(a,低索引+1,高索引);
}
}
公共静态void main(字符串[]args){
int[]a=新的int[5];
a[0]=4;
a[1]=3;
a[2]=6;
a[3]=4;
a[4]=2;
System.out.println(indexOfMaxInRange(a,0,a.length-1));
}
这个带有递归调用的代码段工作得非常好
这个带有递归调用的代码段工作得非常好 如果您想使用递归更改
maxirange
到indexOfMaxInRange
,它会很好地工作
还有一种方法,使用for循环代替递归。检查最大值并跟踪索引和返回
public static int indexOfMaxInRange(int[] a, int lowIndex, int highIndex) {
int maxIndex = 0;
int maxVal = a[0];
for (int i = 0; i < a.length; i++) {
if(maxVal < a[i]){
maxVal = a[i];
maxIndex=i;
}
}
return maxIndex;
}
公共静态int-indexOfMaxInRange(int[]a,int-lowIndex,int-highIndex){
int maxIndex=0;
int maxVal=a[0];
for(int i=0;i
如果要使用递归更改maxirange
到indexOfMaxInRange
,它可以正常工作
还有一种方法,使用for循环代替递归。检查最大值并跟踪索引和返回
public static int indexOfMaxInRange(int[] a, int lowIndex, int highIndex) {
int maxIndex = 0;
int maxVal = a[0];
for (int i = 0; i < a.length; i++) {
if(maxVal < a[i]){
maxVal = a[i];
maxIndex=i;
}
}
return maxIndex;
}
公共静态int-indexOfMaxInRange(int[]a,int-lowIndex,int-highIndex){
int maxIndex=0;
int maxVal=a[0];
for(int i=0;i
方法被称为indexOfMaxInRange
,但它从maxInRange
showmaxInRange
方法返回值,该方法应该是对indexOfMaxInRange
的递归调用,该方法应该被称为indexOfMaxInRange
,但是它从maxirange
showmaxirange
method返回值,这应该是对indexOfMaxInRange
的递归调用,应该可以工作,我认为这是OP试图做的,可能只是他部分的输入错误,所以您可能需要突出显示更正;)我第一次读他的代码时就错过了。我想这就是OP想要做的,可能只是他角色的一个拼写错误,所以你可能需要强调更正;)我第一次读他的代码时就错过了。我会说递归更有趣我想说递归更有趣