# [Solved] An array arr a mountain if the following properties hold: arr.length >= 3, There exists some i with 0 < i < arr.length - 1 such that: ## Question

An array `arr` a mountain if the following properties hold:

• `arr.length >= 3`
• There exists some `i` with `0 < i < arr.length - 1` such that:
• `arr < arr < ... < arr[i - 1] < arr[i]`
• `arr[i] > arr[i + 1] > ... > arr[arr.length - 1]`

Given a mountain array `arr`, return the index `i` such that `arr < arr < ... < arr[i - 1] < arr[i] > arr[i + 1] > ... > arr[arr.length - 1]`.

You must solve it in `O(log(arr.length))` time complexity.

Example 1:

```Input: arr = [0,1,0]
Output: 1
```

Example 2:

```Input: arr = [0,2,1,0]
Output: 1
```

Example 3:

```Input: arr = [0,10,5,2]
Output: 1
```

Constraints:

• `3 <= arr.length <= 105`
• `0 <= arr[i] <= 106`
• `arr` is guaranteed to be a mountain array.

## Python Solution

```class Solution:
def peakIndexInMountainArray(self, A: List[int]) -> int:
l=0
r=len(A)-1
mx=0

while l<=r:
m = l+(r-l)//2

if A[m-1]<A[m] and A[m+1]<A[m]:
return (m)
elif A[m-1]<=A[m] and A[m+1]>=A[m]:
l=m+1
else:
r=m-1
```