Geeksforgeeks

X

DAYS

:

HOUR

:

MINS

:

SEC

Error

Copied to Clipboard

An element is called a peak element if its value is not smaller than the value of its adjacent elements(if they exists).

Given an array **arr[]** of size **N**, find the index of any one of its peak elements.

**Note: **The generated output will always be 1 if the index that you return is correct. Otherwise output will be 0.

**Example 1:**

Input:N = 3 arr[] = {1,2,3} Output: 2 Explanation: index 2 is 3. It is the peak element as it is greater than its neighbour 2.

**Example 2:**

Input:N = 2 arr[] = {3,4}Output:1Explanation:4 (at index 1) is the peak element as it is greater than its only neighbour element 3.

**Your Task:**

You don't have to read input or print anything. Complete the function **peakElement**() which takes the array arr[] and its size N as input parameters and return the index of any one of its peak elements.

Can you solve the problem in expected time complexity?

**Expected Time Complexity:** O(log N)

**Expected Auxiliary Space:** O(1)

**Constraints:**

1 ≤ N ≤ 10^{5}

1 ≤ A[] ≤ 10^{6}

We are replacing the old Disqus forum with the new Discussions section given below.

Click here to view old Disqus comments.

Click here to view old Disqus comments.

Login to report an issue on this page.

We strongly recommend solving this problem on your own before viewing its editorial. Do you still want to view the editorial?

YesLoading...

Peak element

...