Menu
CoddyTech

Kth Largest Element in a Stream

ЛегкоКучаpython iconjava iconcpp iconc iconjs icon+10

Поток целых чисел начинается со значений в nums. Затем значения из adds поступают по одному. После каждого поступления записывай k-е по величине значение среди всех увиденных к этому моменту, считая равные значения отдельно. Верни записанные значения в том же порядке — по одному для каждого значения из adds.

В nums содержится как минимум k-1 значений, поэтому после первого поступления всегда будет как минимум k значений на выбор.

Функция

kthLargestStream(k: integer, nums: integer-array, adds: integer-array) → integer-array
kinteger
ранг для вывода: 1 — для наибольшего значения
numsinteger-array
значения, уже находящиеся в потоке
addsinteger-array
значения, которые поступают, по порядку
Возвращаетinteger-array
k-е наибольшее значение после каждого поступления

Ограничения

  • 1 ≤ nums.length ≤ 104
  • 1 ≤ adds.length ≤ 104
  • 1 ≤ k ≤ nums.length + 1
  • -104 ≤ nums[i], adds[i] ≤ 104
  • nums может быть в любом порядке, а одинаковые значения считаются отдельными значениями.

Примеры

Ввод
k = 3nums = [7, 1, 5]adds = [3, 9, 6, 2, 8]
Вывод
[3, 5, 6, 6, 7]
Пояснение
После 3 идёт третье по величине число среди 7, 5, 3 и 1 — это 3. Затем 9 поднимает его до 5, 6 — до 6, 2 ничего не меняет, а 8 поднимает его до 7 (9, 8, 7).
challenge icon

Дополнительный вопрос

Как бы ты ответил на тот же вопрос, если бы значения также можно было удалять из потока?

Сбросить код
def kthLargestStream(k, nums, adds):
    # Напишите код здесь

Тест #1

Тест #2

Тест #3

Аргументы

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

Ожидаемый вывод

[3, 5, 6, 6, 7]