Finding Peak
Finding peak in an 1-D array
Easy and slow solution
public int findPeak(int[] array) {
if (array.length == 1) return 0;
if (array.length == 2) {
if (array[0] >= array[1]) {
return 0;
} else if (array[0] < array[1]) {
return 1;
}
return -1;
}
for (int i = 0; i < array.length; i++) {
if (i == 0) {
if (array[i] > array[i + 1]) {
return i;
}
continue;
}
if (i == array.length -1) {
if (array[i] > array[i - 1]) {
return i;
}
}
if (array[i] >= array[i - 1] && array[i] >= array[i + 1]) {
return i;
}
}
return -1;
}Faster solution using recursion and binary search
Last updated