Menu
CoddyTech

Kth Largest Element in a Stream

FácilHeappython iconjava iconcpp iconc iconjs icon+10

Um fluxo de números inteiros começa com os valores em nums. Em seguida, os valores de adds chegam um de cada vez. Após cada chegada, registre o k-ésimo maior valor entre tudo o que foi visto até então, contando valores iguais separadamente. Retorne os valores registrados em ordem, um para cada valor de adds.

nums contém pelo menos k-1 valores, portanto, após a primeira chegada, sempre há pelo menos k valores entre os quais escolher.

Função

kthLargestStream(k: integer, nums: integer-array, adds: integer-array) → integer-array
kinteger
a classificação a relatar, 1 para o maior valor
numsinteger-array
os valores que já estão no fluxo
addsinteger-array
os valores que chegam, em ordem
Retornainteger-array
o k-ésimo maior valor após cada chegada

Restrições

  • 1 ≤ nums.length ≤ 104
  • 1 ≤ adds.length ≤ 104
  • 1 ≤ k ≤ nums.length + 1
  • -104 ≤ nums[i], adds[i] ≤ 104
  • nums pode estar em qualquer ordem, e valores iguais contam como valores separados.

Exemplos

Entrada
k = 3nums = [7, 1, 5]adds = [3, 9, 6, 2, 8]
Saída
[3, 5, 6, 6, 7]
Explicação
Depois do 3, o terceiro maior entre 7, 5, 3 e 1 é 3. Em seguida, 9 eleva-o para 5, 6 eleva-o para 6, 2 não altera nada, e 8 eleva-o para 7 (9, 8, 7).
challenge icon

Para ir além

Como você responderia à mesma pergunta se os valores também pudessem ser removidos do fluxo?

Redefinir código
def kthLargestStream(k, nums, adds):
    # Escreva o código aqui

Teste #1

Teste #2

Teste #3

Argumentos

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

Saída Esperada

[3, 5, 6, 6, 7]