题解 | #寻找峰值#
寻找峰值
https://www.nowcoder.com/practice/fcf87540c4f347bcb4cf720b5b350c76
func findPeakElement(nums []int) int {
// write code here
l, r := 0, len(nums)-1
get := func(i int) int {
if i == -1 || i == len(nums) {
return math.MinInt64
}
return nums[i]
}
for {
mid := (l + r) / 2
if get(mid-1) < get(mid) && get(mid) > get(mid+1) {
return mid
}
if get(mid) < get(mid+1) {
l = mid + 1
} else {
r = mid - 1
}
}
}