
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Finding Peak of a Centrally Peaked Array in JavaScript
Centrally Peaked Array
We call an array arr a centrally peaked array if the following properties hold −
arr.length >= 3
-
There exists some i with 0 < i < arr.length - 1 such that
arr[0] < arr[1] < ... arr[i-1] < arr[i]
arr[i] > arr[i+1] > ... > arr[arr.length - 1]
Problem
We are required to write a JavaScript function that takes in an array of numbers, arr, as the first and the only argument.
The input array is a centrally peaked array. Our function is supposed to return the peak index of this centrally peaked array.
For example, if the input to the function is
Input
const arr = [4, 6, 8, 12, 15, 11, 7, 4, 1];
Output
const output = 4;
Output Explanation
Because the element at index 4 (15) is the peak element of this array.
Example
Following is the code −
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));
Output
4
Advertisements