2
* @param {number[]} nums5
var findPeakElement = function (nums) {6
if (nums.length === 1) return 0;8
const recursion = (startIndex, endIndex) => {9
const midIndex = Math.floor((startIndex + endIndex) / 2);11
if (startIndex === endIndex) return startIndex;12
if (startIndex + 1 === endIndex) {13
return nums[endIndex] >= nums[startIndex] ? endIndex : startIndex;17
nums[midIndex] > nums[midIndex - 1] &&18
nums[midIndex] > nums[midIndex + 1]22
nums[midIndex] > nums[midIndex - 1] &&23
nums[midIndex] < nums[midIndex + 1]25
return recursion(midIndex + 1, endIndex);27
nums[midIndex] < nums[midIndex - 1] &&28
nums[midIndex] > nums[midIndex + 1]30
return recursion(startIndex, midIndex - 1);32
nums[midIndex] < nums[midIndex - 1] &&33
nums[midIndex] < nums[midIndex + 1]35
return nums[midIndex - 1] > nums[midIndex + 1]36
? recursion(startIndex, midIndex - 1)37
: recursion(midIndex + 1, endIndex);40
return recursion(0, nums.length - 1);