package q162 // Important constraint: nums[i] != nums[i + 1] func findPeakElement(nums []int) int { l, r := 0, len(nums) for l < r { m := (l + r) / 2 lLower := m == 0 || nums[m-1] < nums[m] rLower := m == len(nums)-1 || nums[m+1] < nums[m] if lLower && rLower { return m } if !lLower { // left side is higher r = m } else { l = m + 1 } } return -1 } var _ = findPeakElement