我需要递归地获取数组中的最大数字

时间:2015-11-03 01:44:08

标签: java arrays

我试图找到最大的双打数组,但是,困难的是你必须将数组分成两个切片,但是之后你需要计算2个子切片的最大值和返回2个值中最大的一个,它需要使用递归。

你能否给我一个如何开始的小费。

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{ 

      }   
    }  
  }

1 个答案:

答案 0 :(得分:1)

你必须问自己在else部分做了什么。

您现在面对的是两个或更多元素的数组。

你可以说:

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