Menu
CoddyTech

Binary Search

Kolayİkili aramapython iconjava iconcpp iconc iconjs icon+10

Tekrarlanan değer içermeyen, artan sırada sıralanmış bir tam sayılar listesi olan nums ve bir tam sayı olan target veriliyor. target değerinin nums içindeki indeksini 0'dan başlayarak döndürün veya listede yoksa -1 döndürün. O(log n) zaman hedefleyin; bu, her öğeye bakmayı göze alamayacağınız anlamına gelir.

Fonksiyon

search(nums: integer-array, target: integer) → integer
numsinteger-array
sıralanmış farklı tam sayılar listesi
targetinteger
aranacak değer
Döndürürinteger
nums içinde target'ın indeksi; yoksa -1

Kısıtlar

  • 1 ≤ nums.length ≤ 104
  • -104 ≤ nums[i], target ≤ 104
  • nums kesin artan sırada sıralanmıştır, bu nedenle her değer bir kez görünür.

Örnekler

Girdi
nums = [-7, -2, 0, 4, 9, 15, 23]target = 9
Çıktı
4
Açıklama
nums[4] 9'dur. Arama, 3. indekse bakar (değer 4, çok küçük), sonra 5. indekse (değer 15, çok büyük), ardından 9'u bulduğu 4. indekse bakar.

lock iconGönderirken +15 gizli test

challenge icon

Ek soru

Eğer nums içinde değerler tekrarlanabiliyorsa, yine O(log n) sürede target değerinin ilk indeksini nasıl döndürürdün?

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

Durum 1

Durum 2

Girdi

nums = [-7, -2, 0, 4, 9, 15, 23]
target = 9

Beklenen

4