给定一个整数数组 A,如果它是有效的山脉数组就返回 true,否则返回 false。
class Solution {
public boolean validMountainArray(int[] A) {
int len = A.length;//数组的长度
int left = 0;
int right = len - 1;//由于数组下表是从0开始,所以right的位续为数组长度减1;
//从左边往右边找,一直找到山峰为止
while (left <len-1&& A[left] < A[left + 1])
left++;
//从右边往左边找,一直找到山峰为止,且left不能超过right,
while (right > 0 && A[right - 1] > A[right])
right--;
//判断从左边和从右边找的山峰是不是同一个,且不能为第一个或最后一个
return left > 0 && right < len - 1 && left == right;
}
}
本文介绍了一种判断数组是否为有效山脉数组的方法。通过双指针从两端向中间遍历,找到山顶位置并确保山顶不在边界上。
542

被折叠的 条评论
为什么被折叠?



