Please solve the programming task below using a self-contained code snippet in a markdown code block.

You are given an integer mountain array arr of length n where the values increase to a peak element and then decrease.
Return the index of the peak element.
Your task is to solve it in O(log(n)) time complexity.
 
Please complete the following python code precisely:
```python
class Solution:
    def peakIndexInMountainArray(self, arr: List[int]) -> int:
```