Menu
CoddyTech

Find Peak Element

nums dizisi önce yükselir, sonra düşer: bir indekse kadar her değer kendisinden önceki değerden büyüktür ve bu indeksten sonraki her değer kendisinden önceki değerden küçüktür. Her iki bölümden biri boş olabilir; bu nedenle dizi yalnızca yükselebilir veya yalnızca düşebilir. Dönüş indeksindeki değer tepedir; komşularının her birinden büyük olan tek değerdir.

Tepe değerinin indeksini O(log n) zamanda döndürün.

Fonksiyon

findPeakElement(nums: integer-array) → integer
numsinteger-array
değerler bir tepe noktasına yükselir ve ardından düşer
Döndürürinteger
tepenin indeksi

Kısıtlar

  • 1 ≤ nums.length ≤ 5000
  • -106 ≤ nums[i] ≤ 106
  • nums[i] != nums[i+1] her geçerli i için.
  • nums bir indekse kadar kesin artar ve o indeksten sonra kesin azalır; dolayısıyla tam olarak bir tepe noktası vardır.

Örnekler

Girdi
nums = [2, 5, 9, 4, 1]
Çıktı
2
Açıklama
Değerler 2, 5 ve 9 üzerinden yükselir, ardından 4 ve 1 üzerinden düşer. Dönüş noktası 9, indeks 2'dir.
challenge icon

Ek soru

Komşu hücrelerden hiçbirinin eşit olmadığı bir ızgarada, tepe bir hücrenin en fazla dört komşusundan daha büyük olmasıdır. Her hücreyi okumadan bir tepe bulabilir misin?

Kodu sıfırla
def findPeakElement(nums):
    # Kodu buraya yazın

Test #1

Test #2

Test #3

Argüman

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

Beklenen Çıktı

2