Menu
CoddyTech

Kth Largest Element in a Stream

Bir tam sayı akışı, nums içindeki değerlerle başlar. Ardından adds değerleri teker teker gelir. Her gelişten sonra, eşit değerleri ayrı ayrı sayarak, şimdiye kadar görülen tüm değerler arasındaki k. en büyük değeri kaydet. Kaydedilen değerleri, adds içindeki her değer için bir tane olacak şekilde sırayla döndür.

nums, en az k-1 değer içerir; bu nedenle ilk gelişten sonra seçilebilecek her zaman en az k değer bulunur.

Fonksiyon

kthLargestStream(k: integer, nums: integer-array, adds: integer-array) → integer-array
kinteger
bildirilecek sıra, en büyük değer için 1
numsinteger-array
akışta zaten bulunan değerler
addsinteger-array
gelen değerler, sırayla
Döndürürinteger-array
Her yeni gelişten sonra k'ncı en büyük değer

Kısıtlar

  • 1 ≤ nums.length ≤ 104
  • 1 ≤ adds.length ≤ 104
  • 1 ≤ k ≤ nums.length + 1
  • -104 ≤ nums[i], adds[i] ≤ 104
  • nums herhangi bir sırada olabilir ve eşit değerler ayrı değerler olarak sayılır.

Örnekler

Girdi
k = 3nums = [7, 1, 5]adds = [3, 9, 6, 2, 8]
Çıktı
[3, 5, 6, 6, 7]
Açıklama
3'ten sonra, 7, 5, 3 ve 1 sayılarının üçüncü en büyüğü 3'tür. Ardından 9 onu 5'e, 6 onu 6'ya yükseltir, 2 hiçbir şeyi değiştirmez ve 8 onu 7'ye yükseltir (9, 8, 7).
challenge icon

Ek soru

Değerler akıştan da çıkarılabilseydi aynı soruyu nasıl yanıtlardın?

Kodu sıfırla
def kthLargestStream(k, nums, adds):
    # Kodu buraya yazın

Test #1

Test #2

Test #3

Argümanlar

k = 3
nums = [7, 1, 5]
adds = [3, 9, 6, 2, 8]

Beklenen Çıktı

[3, 5, 6, 6, 7]