중앙 정점 어레이
배열을 중앙 정점 배열이라고 합니다. 다음 속성이 유지되는 경우 -
-
길이>=3
-
0
-
arr[0]
-
arr[i]> arr[i+1]> ...> arr[arr.length - 1]
-
문제
첫 번째이자 유일한 인수로 숫자 배열, arr를 취하는 JavaScript 함수를 작성해야 합니다.
입력 배열은 중앙에 정점이 있는 배열입니다. 우리 함수는 이 중앙 정점 배열의 정점 인덱스를 반환해야 합니다.
예를 들어 함수에 대한 입력이
인 경우입력
const arr = [4, 6, 8, 12, 15, 11, 7, 4, 1];
출력
const output = 4;
출력 설명
인덱스 4(15)의 요소가 이 배열의 피크 요소이기 때문입니다.
예시
다음은 코드입니다 -
const arr = [4, 6, 8, 12, 15, 11, 7, 4, 1];
const findPeak = (arr = []) => {
if(arr.length < 3) {
return -1
}
const helper = (low, high) => {
if(low > high) {
return -1
}
const middle = Math.floor((low + high) / 2)
if(arr[middle] <= arr[middle + 1]) {
return helper(middle + 1, high)
}
if(arr[middle] <= arr[middle - 1]) {
return helper(low, middle - 1)
}
return middle
}
return helper(0, arr.length - 1)
};
console.log(findPeak(arr)); 출력
4