从后往前扫描,只需要判断当前值和前一个值的大小

import java.util.*;


public class Solution {
    /**
     * 寻找最后的山峰
     * @param a int整型一维数组 
     * @return int整型
     */
    public int solve (int[] a) {
        // 判断输入数组是否有效,如果数组仅有一个元素,则返回0
        if (a == null || a.length <= 1) {
            return 0;
        }
        int len = a.length;
        // 从后往前扫描
        // 已知题设a[n] = 负无穷,那么a[n-1]必然大于a[n],因此只需要和前一个数比较,如果符合就返回
        // 如果不符合,那么就隐含了a[n-1] < a[n-2],因此对于a[n-2]来说,只需要考虑它的前一个数即可
        for(int i = len-1; i > 0; i--) {
            if (a[i] >= a[i-1]) {
                return i;
            }
        }
        return 0;
    }
}