Menu
CoddyTech

Next Greater Element I

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

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

פונקציה

nextGreaterElement(nums1: integer-array, nums2: integer-array) → integer-array
nums1integer-array
הערכים שיש להשיב עליהם, כולם נמצאים ב־nums2
nums2integer-array
המערך שבו מחפשים מימין לכל ערך
מחזירהinteger-array
האיבר הבא הגדול יותר עבור כל ערך של nums1, או ‎-1, לפי הסדר של nums1

אילוצים

  • 1 ≤ nums1.length ≤ nums2.length ≤ 104
  • 0 ≤ nums1[i], nums2[i] ≤ 104
  • כל הערכים ב-nums1 שונים, וכל הערכים ב-nums2 שונים.
  • כל ערך של nums1 מופיע ב-nums2.

דוגמאות

קלט
nums1 = [3, 8, 1]nums2 = [1, 6, 3, 8, 2]
פלט
[8, -1, 6]
הסבר
אחרי ה־3 ב־nums2 באים 8 ו־2, ו־8 הוא הראשון שגדול מ־3. רק 2 מופיע אחרי 8, לכן 8 מקבל ‎-1. הערך שמופיע מיד אחרי 1 הוא 6, שכבר גדול יותר.

lock icon+14 בדיקות נסתרות בשליחה

challenge icon

שאלת המשך

עבור כל מיקום של nums2, האם תוכל להחזיר כמה צעדים ימינה נמצא האיבר הבא הגדול ממנו, באותו מעבר יחיד?

איפוס הקוד
def nextGreaterElement(nums1, nums2):
    # כתבו כאן את הקוד
מקרי בדיקה

מקרה 1

מקרה 2

מקרה 3

קלט

nums1 = [3, 8, 1]
nums2 = [1, 6, 3, 8, 2]

צפוי

[8, -1, 6]