केंद्रीय रूप से चोटी वाली सरणी
हम एक सरणी arr को केंद्रीय रूप से चोटी वाली सरणी कहते हैं यदि निम्नलिखित गुण लागू होते हैं -
arr.length >= 3- कुछ
iमौजूद है जहां0 < i < arr.length - 1जैसे किarr[0] < arr[1] < ... arr[i-1] < arr[i]arr[i] > arr[i+1] > ... > arr[arr.length - 1]
समस्या
हमें एक JavaScript फ़ंक्शन लिखना है जो संख्याओं की एक सरणी, arr, को पहला और एकमात्र तर्क के रूप में लेता है।
इनपुट सरणी एक केंद्रीय रूप से चोटी वाली सरणी है। हमारे फ़ंक्शन को इस केंद्रीय रूप से चोटी वाली सरणी का चोटी इंडेक्स वापस करना चाहिए।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है
इनपुट
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