lc-go/solutions/1/q162/solution.go
2026-01-17 12:51:40 +09:00

24 lines
407 B
Go

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