Skip to content

Latest commit

 

History

History
28 lines (26 loc) · 542 Bytes

162-寻找峰值.md

File metadata and controls

28 lines (26 loc) · 542 Bytes
func findPeakElement(nums []int) int {
    n := len(nums)
    left := 0
    right := n - 1
    var mid int

    var get func(i int)int
    get = func(i int) int {
        if i == -1 || i == n {
            return math.MinInt64
        }
        return nums[i]
    }

    for {
        mid = (left + right) / 2
        if get(mid) > get(mid-1) && get(mid) > get(mid+1) {
            return mid
        }
        if get(mid) < get(mid+1) {
            left = mid + 1
        } else {
            right = mid - 1
        }
    }
}