Menu
CoddyTech

Kth Largest Element in a Stream

MudahHeappython iconjava iconcpp iconc iconjs icon+10

Aliran bilangan bulat dimulai dengan nilai-nilai dalam nums. Kemudian, nilai-nilai dari adds tiba satu per satu. Setelah setiap nilai tiba, catat nilai terbesar ke-k dari semua nilai yang telah dilihat sejauh ini, dengan menghitung nilai yang sama secara terpisah. Kembalikan nilai-nilai yang dicatat sesuai urutannya, satu untuk setiap nilai dalam adds.

nums berisi setidaknya k-1 nilai, jadi setelah nilai pertama tiba, selalu ada setidaknya k nilai yang dapat dipilih.

Fungsi

kthLargestStream(k: integer, nums: integer-array, adds: integer-array) → integer-array
kinteger
peringkat yang akan dilaporkan, 1 untuk nilai terbesar
numsinteger-array
nilai yang sudah ada di dalam aliran
addsinteger-array
nilai-nilai yang tiba, secara berurutan
Mengembalikaninteger-array
nilai terbesar ke-k setelah setiap kedatangan

Batasan

  • 1 ≤ nums.length ≤ 104
  • 1 ≤ adds.length ≤ 104
  • 1 ≤ k ≤ nums.length + 1
  • -104 ≤ nums[i], adds[i] ≤ 104
  • nums boleh dalam urutan apa pun, dan nilai yang sama dihitung sebagai nilai terpisah.

Contoh

Input
k = 3nums = [7, 1, 5]adds = [3, 9, 6, 2, 8]
Output
[3, 5, 6, 6, 7]
Penjelasan
Setelah 3, nilai terbesar ketiga dari 7, 5, 3, dan 1 adalah 3. Lalu 9 menaikkannya menjadi 5, 6 menaikkannya menjadi 6, 2 tidak mengubah apa pun, dan 8 menaikkannya menjadi 7 (9, 8, 7).
challenge icon

Pertanyaan lanjutan

Bagaimana kamu akan menjawab pertanyaan yang sama jika nilai juga bisa dihapus dari aliran?

Reset kode
def kthLargestStream(k, nums, adds):
    # Tulis kodemu di sini

Tes #1

Tes #2

Tes #3

Argumen

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

Output yang diharapkan

[3, 5, 6, 6, 7]