Menu
CoddyTech

Find Minimum in Rotated Sorted Array

Birbirinden farklı tamsayılardan oluşan bir liste artan sırada sıralandı ve ardından döndürüldü: sıfır olabilir, belirli sayıda öğe baştan alınıp aynı sırayla sona taşındı. Örneğin, [2, 5, 9, 11, 13, 15, 17] 3 kez döndürüldüğünde [11, 13, 15, 17, 2, 5, 9] olur. Döndürülmüş nums listesini alıyorsun. En küçük değerini O(log n) zamanda döndür.

Fonksiyon

findMin(nums: integer-array) → integer
numsinteger-array
döndürülmüş sıralı farklı tam sayılar listesi
Döndürürinteger
nums içindeki en küçük değer

Kısıtlar

  • 1 ≤ nums.length ≤ 5000
  • -104 ≤ nums[i] ≤ 104
  • nums içindeki tüm değerler birbirinden farklıdır.

  • nums, bir k değeri kadar döndürülmüş artan bir listedir; 0 ≤ k < nums.length; k = 0 listeyi döndürülmemiş bırakır.

Örnekler

Girdi
nums = [11, 13, 15, 17, 2, 5, 9]
Çıktı
2
Açıklama
Değerler 11'den 17'ye yükselir, ardından 2'ye düşer; ikinci çalışma burada başlar. Arama, 3. indekste 17 > 9 olduğunu görür, dolayısıyla minimum sağındadır; ardından 5 ≤ 9 ve 2 ≤ 5, aralık yalnızca 2'yi içeren 4. indeks olana kadar hi'yi geri çeker.

lock iconGönderirken +17 gizli test

challenge icon

Ek soru

nums içindeki k'ıncı en küçük değeri sıralamadan O(log n) sürede döndürebilir misin?

Kodu sıfırla
def findMin(nums):
    # Kodu buraya yazın
Test durumları

Durum 1

Durum 2

Durum 3

Girdi

nums = [11, 13, 15, 17, 2, 5, 9]

Beklenen

2