Valid Mountain Array
Last updated
Last updated
public boolean validMountainArray(int[] A) {
// 数组长度小于3返回false
if (A.length < 3) {
return false;
}
// flag代表该阶段是上升(0)还是下降(1)
int flag = A[1] - A[0] > 0 ? 0 : 1;
// 初始不上升则返回false
if (flag != 0) {
return false;
}
for (int i = 1; i < A.length; i++) {
int t = A[i] - A[i - 1];
// 两个值相等返回false
if (t == 0) {
return false;
}
// 首次出现下降时将flag的值置为1
if (flag == 0 && t < 0) {
flag = 1;
}
// 出现先升后降再升的情况返回false
if (t > 0 && flag == 1) {
return false;
}
}
// 若flag最后不等于1,说明没有下降过
return flag == 1;
}