-
Notifications
You must be signed in to change notification settings - Fork 17
Expand file tree
/
Copy pathPeakElements.java
More file actions
29 lines (27 loc) · 834 Bytes
/
PeakElements.java
File metadata and controls
29 lines (27 loc) · 834 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package SummerTrainingGFG.Searching;
/**
* @author Vishal Singh */
public class PeakElements {
static int findPeakElement(int[] arr){
return search(arr,0,arr.length-1,arr.length);
}
static int search(int[] arr,int low,int high,int n){
if (low>high){
return -1;
}
int mid = low + (high-low)/2;
if ( ( (mid == 0) || (arr[mid-1] <= arr[mid]) ) && ( (mid == n-1) || (arr[mid] >= arr[mid+1]) ) ) {
return mid;
}
if (mid > 0 && arr[mid-1]>arr[mid]){
return search(arr,low,mid-1,n);
}
else {
return search(arr,mid+1,high,n);
}
}
public static void main(String[] args) {
int[] arr = {1,4,10,45,20,9,8,7,6,50};
System.out.println("Peak Index: "+findPeakElement(arr));
}
}