LeetCode每日一题,941. Valid Mountain Array
先看题目描述
大意就是给定一个数组,让我们判断其是否为山脉数组,山脉数组的定义为数组 A 的长度大于等于 3,且存在一个 i 使得 A[0] < A[1] < … < A[i],A[i] > A[i+1] > … > A[A.length - 1]
算法和思路
线性扫描
按题意模拟即可。我们从数组的最左侧开始向右扫描,直到找到第一个不满足 A[i] < A[i+1] 的下标 i,那么 i 就是这个数组的最高点的下标。如果 i=0 或者不存在这样的 i(即整个数组都是单调递增的),那么就返回 false。否则从 i 开始继续向右扫描,判断接下来的的下标 j 是否都满足 A[j] > A[j+1],若都满足就返回 true,否则返回 false
算法源码
1 | class Solution { |