峰值表示的是它左边的值和右边的值都比它小,而不是最大值
当然可以通过循环遍历来查找,但是如果他就要让你用二叉树来找呢,比较快速
function funName(arr, addIdx){
if(arr.length===1){
return addIdx
}else if(arr.length===2){
return (arr[0]>arr[1]?0:1) + addIdx
}else {
let startIndex = Math.floor(arr.length/2)
let leftArr = arr.slice(0, startIndex)
let rightArr = arr.slice(startIndex+1)
if(arr[startIndex]>arr[startIndex-1]&&arr[startIndex]>arr[startIndex+1]){
return startIndex + addIdx
}else if(arr[startIndex-1]>arr[startIndex]){
return funName(leftArr,0)
}else {
return funName(rightArr, startIndex+1)
}
}
}