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.
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 #1

Test #2

Test #3

Argüman

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

Beklenen Çıktı

2