Categorías
Algorithms

LeetCode – Encontrar elemento pico

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;
    }
}

  LeetCode - Implementar cola usando pilas (Java)

Por Programación.Click

Más de 20 años programando en diferentes lenguajes de programación. Apasionado del code clean y el terminar lo que se empieza. ¿Programamos de verdad?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *