Amazon Interview Question
SDE1sCountry: India
Interview Type: Phone Interview
public class PeakElement {
public static void main(String[] args) {
// TODO Auto-generated method stub
int arr[] = { 10, 25, 15, 35, 36, 37 };
System.out.println(findPeakElement(arr, 0, arr.length - 1));
}
private static int findPeakElement(int[] arr, int start, int end) {
// TODO Auto-generated method stub
int mid = (start + end) / 2;
if ((mid == 0 || arr[mid] > arr[mid - 1])
&& (mid == arr.length - 1 || arr[mid] > arr[mid + 1])) {
return arr[mid];
} else if (mid > 0 && (arr[mid] < arr[mid + 1])) {
return findPeakElement(arr, mid + 1, arr.length - 1);
} else {
return findPeakElement(arr, 0, mid - 1);
}
}
}
Reference - geeksforgeeks
private void findPeak(int[] arr) {
- Abdul May 03, 2016for(int i=1;i<arr.length-1;i++) {
if(arr[i-1] < arr[i] && arr[i] > arr[i+1]) {
System.out.println("Peak element "+arr[i]+" and the index of array is "+i);
}
}
}
public static void main(String[] args) {
//int arr[] = {5, 10, 20, 15};
//int arr[] = {10, 20, 15, 2, 23, 90, 67};
int arr[] = {1, 3, 20, 4, 1, 0};
FindPeakElements findPeakElements = new FindPeakElements();
findPeakElements.findPeak(arr);
}