# 山脉数组
# 遍历了2次  时间复杂度是O(n^2)
def peakIndexInMountainArray(A):
    index = 0
    for i in range(1, len(A)):
        if A[i - 1] < A[i] > A[i + 1]:
            index = i
            # break  这里加上break 跳出语句减少循环次数
    print(index)


if __name__ == '__main__':
    peakIndexInMountainArray([0, 1, 0])
    peakIndexInMountainArray([0, 2, 1, 0])


# 通过二分查找实现 O(log2n)
def peakIndexInMountainArray(mountain):
    height = len(mountain)
    low = 0
    while low <= height:
        mid = (height + low) // 2
        if array[mid] > array[mid - 1] and array[mid] > array[mid + 1]:
            print(mid)
            break
        elif array[mid] > array[mid + 1]:
            height = mid - 1
        else:
            low = mid + 1


array = [0, 1, 0]
peakIndexInMountainArray(array)
array = [0, 2, 1, 0]
peakIndexInMountainArray(array)
array = [0, 1, 2, 3, 7, 6, 5, 4, 2, 1, 0]
peakIndexInMountainArray(array)
array = [0, 1, 2, 7, 6, 5, 4, 0]
peakIndexInMountainArray(array)