Skip to content

Find Peak Element

LeetCode Problem

# https://leetcode.com/problems/find-peak-element/description/
class Solution:
    def findPeakElement(self, nums: List[int]) -> int:
        # modified binary search
        low, high = 0, len(nums) - 1
        while low <= high:
            mid = (low + high) // 2
            # left side bigger (check for out of bounds condition) : look on left side
            if mid < len(nums) - 1 and nums[mid] < nums[mid + 1]:
                low = mid + 1
            # right side bigger
            elif mid > 0 and nums[mid] < nums[mid - 1]:
                high = mid - 1
            else:
                return mid  # answer