Given an array of integers
arr
, returntrue
if and only if it is a valid mountain array.Recall that arr is a mountain array if and only if:
arr.length >= 3
- There exists some
i
with0 < i < arr.length - 1
such that:
arr[0] < arr[1] < ... < arr[i - 1] < arr[i]
arr[i] > arr[i + 1] > ... > arr[arr.length - 1]
class Solution:
def validMountainArray(self, arr):
if len(arr) < 3:
return False
left, right = 0, len(arr) - 1
# 从左往右搜索,直到不满足或超出范围停止
while left + 1 < len(arr) - 1 and arr[left] < arr[left + 1]:
left += 1
# 从右往左,同理
while right - 1 > 0 and arr[right] < arr[right - 1]:
right -= 1
# 检测 top 是不是同一个数
return left == right