Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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 我需要递归地得到数组中的最大数_Java_Arrays - Fatal编程技术网

Java 我需要递归地得到数组中的最大数

Java 我需要递归地得到数组中的最大数,java,arrays,Java,Arrays,我试图在double数组中找到最大的值,但是,困难的部分是,你必须将数组分成两个片,我这样做了,但是在那之后,你需要计算两个子片的最大值,并返回两个值中的最大值,它需要使用递归 你能告诉我怎么开始吗 public static double getLargest(double [] a, int low, int high) { int c = (low+high)/2; double slice1[] = Arrays.copyOfRange(a, l

我试图在double数组中找到最大的值,但是,困难的部分是,你必须将数组分成两个片,我这样做了,但是在那之后,你需要计算两个子片的最大值,并返回两个值中的最大值,它需要使用递归

你能告诉我怎么开始吗

public static  double getLargest(double [] a, int low, int high)
    {
       int c =  (low+high)/2; 
       double slice1[] = Arrays.copyOfRange(a, low,c + 1 ); 
       double slice2[] = Arrays.copyOfRange(a,c , high+1);
       if(low > high || high > a.length-1 ||low < 0 )
            throw new IllegalArgumentException();
       if(low == high )
            return a[low];
       else{ 

      }   
    }  
  }
public static double getmax(double[]a,int-low,int-high)
{
int c=(低+高)/2;
double slice1[]=Arrays.copyOfRange(a,low,c+1);
双切片2[]=数组。copyOfRange(a、c、高+1);
如果(低>高| |高>a.length-1 | |低<0)
抛出新的IllegalArgumentException();
如果(低==高)
返回一个[低];
否则{
}   
}  
}

你必须问问自己在
的其他部分要做什么

您现在面临的是两个或多个元素的数组

你可以说:

  • 查找该数组前半部分的最大值(通过再次调用相同的方法,即递归,但使用“较短”的输入数组)
  • 求该数组后半部分的最大值
  • 返回这两个结果中较大的一个

我不知道如何开始,我一整天都在试图解决这个问题。我在发布的代码中没有看到任何递归。从概念上讲,这与此非常接近,也许你可以得到启发:我建议你不要复制数组。相反,只需将边界作为索引传递给该方法。@Thilo Yes这两个问题明显相似,具有相同的变量名和相似的空白特性。两个用户的种族也相同。两个来自同一所高中的学生问家庭作业问题