分治求数组最大值JAVA实现
Posted 小乖乖的臭坏坏
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分治求数组最大值JAVA实现相关的知识,希望对你有一定的参考价值。
分治思想求数组最大值
/*
* 分治法:
* 1.将问题分割为局部问题(Divide);
* 2.递归地求解局部问题(Solve);
* 3.将局部问题的解整合,解决原问题(Conquer)。
* */
public class DivideConquerDemo {
public static void main(String[] args) {
int[] arr = new int[]{1,6,8,9,2,4,6,18,3,5,7,9,2,5};
int n = arr.length;
System.out.println("数组最大的数是:" + findMax(arr, 0, n-1));
}
public static int findMax(int[] A, int l, int r){
int m = (l+r)/2;
int x, u, v;
if(l==r-1){return A[l];}
else{
u = findMax(A,l,m);
v = findMax(A,m,r);
x = Math.max(u,v);
}
return x;
}
}
以上是关于分治求数组最大值JAVA实现的主要内容,如果未能解决你的问题,请参考以下文章
算法学习——剑指 Offer II 039. 直方图最大矩形面积(Java实现蛮力,分治,单调栈)