java找出数组指定范围中的最大值
public class Test {
public static void main(String[] args) {
int[] aa = {1,1,5,6,1111,44444,151,2,5,2,3,Integer.MAX_VALUE};
int res = getMax(aa);
System.out.println(res);
}
public static int getMax(int[] arr){
return recursion(arr,0, arr.length-1);
}
/**
*
* @param arr 数组
* @param L 左边起始位置
* @param R 右边终点位置
* @return
*/
public static int recursion(int[] arr ,int L ,int R) {
if(L == R){
return arr[L];
}
int mid = L +((R - L)>>1);//中点
int leftMax = recursion(arr,L,mid);//左边最大值
int rightMax = recursion(arr,mid+1,R);//右边最大值
return Math.max(leftMax,rightMax);//左右比较,返回最大值
}
}