Un elemento pico es un elemento que es mayor que sus vecinos. Dada una matriz de entrada donde num[i] ≠ num[i+1], busque un elemento pico y devuelva su índice. La matriz puede contener varios picos, en ese caso, devolver el índice a cualquiera de los picos está bien.
Puedes imaginar que num[-1] = num[n] = -∞. Por ejemplo, en matriz [1, 2, 3, 1], 3 es un elemento de pico y su función debería devolver el número de índice 2.
Pensamientos
Este es un problema muy simple. Podemos escanear la matriz y encontrar cualquier elemento que sea mayor que el anterior y el siguiente. El primer y último elemento se manejan por separado.
Solución Java
public class Solution { public int findPeakElement(int[] num) { int max = num[0]; int index = 0; for(int i=1; i<=num.length-2; i++){ int prev = num[i-1]; int curr = num[i]; int next = num[i+1]; if(curr > prev && curr > next && curr > max){ index = i; max = curr; } } if(num[num.length-1] > max){ return num.length-1; } return index; } } |