1.和某个数比较大的话就保留,否者替代这个数
public class Main {public static void main(String[] args) {//求出一个数组中的最大值int[] arr = {3, 5, 6,100, 9, 10, 12};System.out.println( "max:" + maxValue( arr ) ); //输出 100}public static int maxValue(int[] arr) {int tmp=0;for (int i = 0; i < arr.length; i++) {tmp = tmp > arr[i] ? tmp : arr[i];}return tmp;}
2.把数组分为左右两个部分,分别找到左右两个部分的最大值,然后返回两个值中最大的值
public class Main {public static void main(String[] args) {//求出一个数组中的最大值int[] arr = {3, 5, 6,100, 9, 10, 12};System.out.println( "max:" + maxValue( arr ) ); //输出100}public static int recursionMaxValue(int[] arr,int left,int right ) {int mid=(left+right)/2;if (left==right) {return arr[left];} else {return Math.max( recursionMaxValue( arr, left, mid ), recursionMaxValue( arr, mid + 1, right ) );}}
3.当然你如果不嫌麻烦你可以把数组分为三个部分,分别求出最大值,然后计算出三个最大值中的最大值