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]