Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java indexOfMaxInRange返回错误的号码?_Java_Arrays_Recursion - Fatal编程技术网

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
show
maxInRange
方法返回值,该方法应该是对
indexOfMaxInRange
的递归调用,该方法应该被称为
indexOfMaxInRange
,但是它从
maxirange
show
maxirange
method返回值,这应该是对
indexOfMaxInRange
的递归调用,应该可以工作,我认为这是OP试图做的,可能只是他部分的输入错误,所以您可能需要突出显示更正;)我第一次读他的代码时就错过了。我想这就是OP想要做的,可能只是他角色的一个拼写错误,所以你可能需要强调更正;)我第一次读他的代码时就错过了。我会说递归更有趣我想说递归更有趣