Menu
CoddyTech

Kth Largest Element in a Stream

FacileTaspython iconjava iconcpp iconc iconjs icon+10

Un flux d’entiers commence par les valeurs de nums. Ensuite, les valeurs de adds arrivent une par une. Après chaque arrivée, enregistrez la k-ième plus grande valeur parmi toutes celles observées jusqu’à présent, en comptant séparément les valeurs égales. Renvoyez les valeurs enregistrées dans l’ordre, une pour chaque valeur de adds.

nums contient au moins k-1 valeurs, donc après la première arrivée, il y a toujours au moins k valeurs parmi lesquelles choisir.

Fonction

kthLargestStream(k: integer, nums: integer-array, adds: integer-array) → integer-array
kinteger
le rang à afficher, 1 pour la valeur la plus élevée
numsinteger-array
les valeurs déjà présentes dans le flux
addsinteger-array
les valeurs qui arrivent, dans l’ordre
Renvoieinteger-array
la k-ième valeur la plus élevée après chaque arrivée

Contraintes

  • 1 ≤ nums.length ≤ 104
  • 1 ≤ adds.length ≤ 104
  • 1 ≤ k ≤ nums.length + 1
  • -104 ≤ nums[i], adds[i] ≤ 104
  • nums peut être dans n’importe quel ordre, et les valeurs égales sont comptées comme des valeurs distinctes.

Exemples

Entrée
k = 3nums = [7, 1, 5]adds = [3, 9, 6, 2, 8]
Sortie
[3, 5, 6, 6, 7]
Explication
Après l'arrivée de 3, le troisième plus grand nombre parmi 7, 5, 3 et 1 est 3. Ensuite, 9 le fait passer à 5, 6 le fait passer à 6, 2 ne change rien, et 8 le fait passer à 7 (9, 8, 7).
challenge icon

Pour aller plus loin

Comment répondrais-tu à la même question si des valeurs pouvaient également être supprimées du flux ?

Réinitialiser le code
def kthLargestStream(k, nums, adds):
    # Écrivez le code ici

Test #1

Test #2

Test #3

Arguments

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

Résultat attendu

[3, 5, 6, 6, 7]