Menu
CoddyTech

Find Peak Element

El array nums sube y después baja: cada valor es mayor que el anterior hasta cierto índice, y cada valor después de ese índice es menor que el anterior. Cualquiera de las dos partes puede estar vacía, así que el array puede solo subir o solo bajar. El valor en el índice de giro es el pico, el único valor mayor que todos sus vecinos.

Devuelve el índice del pico en tiempo O(log n).

Función

findPeakElement(nums: integer-array) → integer
numsinteger-array
los valores, subiendo hasta un máximo y después bajando
Devuelveinteger
el índice del pico

Restricciones

  • 1 ≤ nums.length ≤ 5000
  • -106 ≤ nums[i] ≤ 106
  • nums[i] != nums[i+1] para cada i válido.
  • nums aumenta estrictamente hasta un índice y disminuye estrictamente después, así que hay exactamente un pico.

Ejemplos

Entrada
nums = [2, 5, 9, 4, 1]
Salida
2
Explicación
Los valores suben pasando por 2, 5 y 9, y después bajan pasando por 4 y 1. El cambio de dirección está en 9, índice 2.
challenge icon

Para ir más allá

En una cuadrícula donde no hay dos celdas vecinas iguales, un pico es una celda mayor que sus hasta cuatro vecinas. ¿Puedes encontrar uno sin leer todas las celdas?

Restablecer código
def findPeakElement(nums):
    # Escribe el código aquí

Prueba #1

Prueba #2

Prueba #3

Argumento

nums = [2, 5, 9, 4, 1]

Salida Esperada

2