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]