//先找到比左右两侧大的数 然后以这个数为中心 依次找到左右的长度
class Solution {
public int longestMountain(int[] A) {
if (A == null || A.length <= 2) {
return 0;
}
int res = 0;
for (int i = 1; i < A.length - 1; i++) {
if (A[i - 1] < A[i] && A[i + 1] < A[i]) {
int l = i - 1;
int r = i + 1;
while (l > 0 && A[l - 1] < A[l]) {
l--;
}
while (r < A.length - 1 && A[r + 1] < A[r]) {
r++;
}
res = Math.max(res, (r - l + 1));
}
}
return res;
}
}
每日算法:数组中最长的山脉
最新推荐文章于 2021-12-15 19:25:22 发布