分治求数组最大值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实现蛮力,分治,单调栈)

算法学习——剑指 Offer II 039. 直方图最大矩形面积(Java实现蛮力,分治,单调栈)

算法学习——剑指 Offer II 039. 直方图最大矩形面积(Java实现蛮力,分治,单调栈)