解法一:枚举山顶
遍历找到同时大于其左右两侧的元素,则为山顶,向两边遍历计算出这座山脉的长度,最后统计最大值。
class Solution {public int longestMountain(int[] A) {int max = 0;for (int i = 1; i < A.length - 1; ++i) {if ((A[i] > A[i - 1]) && (A[i] > A[i + 1])) {int left = i - 2;int right = i + 2;while ((left >= 0) && (A[left] < A[left + 1])) {--left;}while ((right < A.length) && (A[right] < A[right - 1])) {++right;}max = Math.max(right - left - 1, max);}}return max;}}
