First Strict Local Minimum
Problem statement
You are given an integer array numbers. Inspect only positions that have both a left and a right neighbor.
Return the smallest index i such that numbers[i] is strictly less than both numbers[i - 1] and numbers[i + 1]. Return -1 if no such index exists.
Function
firstStrictLocalMinimum(numbers: int[]) → intExamples
Example 1
numbers = [1,2,3,4]return = -1No interior value is smaller than both neighbors.
Example 2
numbers = [1,3,1,2,5]return = 2At index 2, value 1 is less than 3 and 2; it is the first qualifying index.
Constraints
0 <= numbers.length <= 100000-1000000000 <= numbers[i] <= 1000000000