Menu
CoddyTech

Kth Largest Element in a Stream

FácilMontículopython iconjava iconcpp iconc iconjs icon+10

Una secuencia de enteros comienza con los valores de nums. Después, los valores de adds llegan de uno en uno. Después de cada llegada, registra el valor más grande en la posición k entre todos los valores vistos hasta el momento, contando los valores iguales por separado. Devuelve los valores registrados en orden, uno por cada valor de adds.

nums contiene al menos k-1 valores, así que después de la primera llegada siempre hay al menos k valores entre los que elegir.

Función

kthLargestStream(k: integer, nums: integer-array, adds: integer-array) → integer-array
kinteger
el rango que se debe informar, 1 para el valor más grande
numsinteger-array
los valores que ya están en el flujo
addsinteger-array
los valores que llegan, en orden
Devuelveinteger-array
el k-ésimo valor más grande después de cada llegada

Restricciones

  • 1 ≤ nums.length ≤ 104
  • 1 ≤ adds.length ≤ 104
  • 1 ≤ k ≤ nums.length + 1
  • -104 ≤ nums[i], adds[i] ≤ 104
  • nums puede estar en cualquier orden, y los valores iguales cuentan como valores separados.

Ejemplos

Entrada
k = 3nums = [7, 1, 5]adds = [3, 9, 6, 2, 8]
Salida
[3, 5, 6, 6, 7]
Explicación
Después de que llega el 3, el tercero más grande de 7, 5, 3 y 1 es 3. Después, el 9 lo eleva a 5, el 6 lo eleva a 6, el 2 no cambia nada y el 8 lo eleva a 7 (9, 8, 7).
challenge icon

Para ir más allá

¿Cómo responderías a la misma pregunta si también se pudieran eliminar valores del flujo?

Restablecer código
def kthLargestStream(k, nums, adds):
    # Escribe el código aquí

Prueba #1

Prueba #2

Prueba #3

Argumentos

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

Salida Esperada

[3, 5, 6, 6, 7]