Menu
CoddyTech

Merge Sorted Array

מקבלים שני מערכים של מספרים שלמים, nums1 ו־nums2. כל אחד מהם כבר ממוין בסדר לא יורד. יש להחזיר מערך יחיד שמכיל את כל הערכים משניהם, גם הוא בסדר לא יורד. ערך שמופיע בשני המערכים יופיע בתוצאה כמספר הפעמים שהוא מופיע בסך הכול.

פונקציה

merge(nums1: integer-array, nums2: integer-array) → integer-array
nums1integer-array
המערך הממוין הראשון
nums2integer-array
המערך הממוין השני
מחזירהinteger-array
כל הערכים של שני המערכים במערך ממוין אחד, באורך nums1.length + nums2.length

אילוצים

  • 1 ≤ nums1.length, nums2.length ≤ 2000
  • -105 ≤ nums1[i], nums2[j] ≤ 105
  • nums1 ו־nums2 ממוינים כל אחד בסדר לא יורד.

דוגמאות

קלט
nums1 = [1, 4, 9]nums2 = [2, 3, 10]
פלט
[1, 2, 3, 4, 9, 10]
הסבר
קרא את שני האיברים הראשונים ושמור את הקטן יותר: 1, ואז 2 ו-3 מתוך nums2, ואז 4 ו-9 מתוך nums1, ולבסוף 10. התוצאה מכילה את כל ששת הערכים.

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

challenge icon

שאלת המשך

האם תוכל למזג k מערכים ממוינים, המכילים בסך הכול N ערכים, בזמן O(N log k)?

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

מקרה 1

מקרה 2

מקרה 3

קלט

nums1 = [1, 4, 9]
nums2 = [2, 3, 10]

צפוי

[1, 2, 3, 4, 9, 10]