package src; public class Main { public static int getIndex(int[] arr) { int len=arr.length; for(int i=1;i<len-1;i++) {//最后一个运算下标为len-1 int left=0,right=i+1; for(;left<i;left++){ //当前值任意一个左边的值大于它时则提前结束 if(arr[left]>arr[i]) break; } if(left<i)continue; //提前结束外层循环 for(;right<len;right++){ //当前值任意一个右边的值小于它时则提前结束 if(arr[right]<arr[i]) break; } if(right==len) //此时已经隐含了 left==i return i; } return -1; } public static void main(String[] args) { int[] arr1 = {5,3,6,9,7,10,5,12}; //应返回-1 int[] arr2 = {5,3,6,2,7,10,8,12}; //应返回4 int[] arr3 = {5,3,6,9,7,10,8,12}; //应返回2 int[] arr4 = {5,3,6,2,7,10,5,12}; //应返回-1 int[] arr5 = {5,5,5,5,5,5,5,5}; //应返回1 System.out.println(getIndex(arr1)); System.out.println(getIndex(arr2)); System.out.println(getIndex(arr3)); System.out.println(getIndex(arr4)); System.out.println(getIndex(arr5)); } }