Menu
CoddyTech

Find First and Last Position of Element in Sorted Array

Azalan olmayan sırada sıralanmış bir tam sayı listesi nums ve bir tam sayı target veriliyor; dolayısıyla bir değer birden fazla kez bulunabilir. 0'dan başlayarak sayılan iki indeksin listesini döndür: target değerinin göründüğü ilk ve son konum. target listede yoksa [-1, -1] döndür. O(log n) zaman hedefle.

Fonksiyon

searchRange(nums: integer-array, target: integer) → integer-array
numsinteger-array
sıralanmış tam sayı listesi; değerler tekrarlanabilir
targetinteger
aranacak değer
Döndürürinteger-array
target'ın ilk ve son indeksi ya da bulunmuyorsa [-1, -1]

Kısıtlar

  • 1 ≤ nums.length ≤ 104
  • -104 ≤ nums[i], target ≤ 104
  • nums azalmayan sırada sıralanmıştır.

Örnekler

Girdi
nums = [3, 5, 5, 5, 8, 9, 9, 12]target = 5
Çıktı
[1, 3]
Açıklama
5'in üç kopyası 1, 2 ve 3 indekslerinde yer alır; bu nedenle dizi 1'de başlar ve 3'te biter. 0 indeksinde 3, 4 indeksinde ise 8 bulunur; bu nedenle dizi daha ileri gidemez.
challenge icon

Ek soru

Aynı liste, farklı hedefler için binlerce sorgu alıyorsa, önceden üzerinden bir kez geçmek her sorguyu O(log n)'den daha hızlı hâle getirebilir mi?

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

Test #1

Test #2

Argümanlar

nums = [3, 5, 5, 5, 8, 9, 9, 12]
target = 5

Beklenen Çıktı

[1, 3]