중앙 정점 어레이
배열을 중앙 정점 배열이라고 합니다. 다음 속성이 유지되는 경우 -
-
길이>=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