Copypasta'd template iii and modified for the problem statement.
# template III
if len(nums) == 0:
return -1
if len(nums) == 1:
return 0
left = 0
right = len(nums) - 1
while left + 1 < right:
mid = (left + right) // 2
if nums[mid-1] < nums[mid] and nums[mid+1] < nums[mid]:
return mid
elif nums[mid] < nums[mid+1]:
left = mid
else:
right = mid
if nums[left] > nums[left+1]:
return left
if nums[right] > nums[right-1]:
return right
return -1
```