Menu
CoddyTech

Leaders in an Array

ניתן לך מערך של מספרים שלמים nums. איבר הוא מנהיג אם הוא גדול או שווה לכל איבר שמימינו. לאיבר האחרון אין איברים מימינו, ולכן הוא תמיד מנהיג. החזר את כל המנהיגים, לפי הסדר שבו הם מופיעים ב-nums משמאל לימין.

פונקציה

leaders(nums: integer-array) → integer-array
numsinteger-array
מערך המספרים השלמים שיש לחפש בו
מחזירהinteger-array
המובילים של nums, משמאל לימין

אילוצים

  • 1 ≤ nums.length ≤ 25000
  • -109 ≤ nums[i] ≤ 109

דוגמאות

קלט
nums = [12, 5, 9, 3, 6, 2]
פלט
[12, 9, 6, 2]
הסבר
2 נמצא אחרון, ולכן הוא מוביל. 6 מנצח את 2 שאחריו, 9 מנצח את 3, את 6 ואת 2, ו־12 מנצח את כולם. 5 מפסיד ל־9 ו־3 מפסיד ל־6, ולכן התשובה היא [12, 9, 6, 2].
challenge icon

שאלת המשך

אם הערכים מגיעים בזה אחר זה, ואחרי כל ערך עליך לדווח על המובילים עד כה, איך מעדכנים את הרשימה בזמן O(1) בממוצע לכל ערך?

איפוס הקוד
def leaders(nums):
    # כתבו כאן את הקוד

בדיקה #1

בדיקה #2

בדיקה #3

ארגומנט

nums = [12, 5, 9, 3, 6, 2]

הפלט הצפוי

[12, 9, 6, 2]