Menu
CoddyTech

Median of Two Sorted Arrays

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

כשמספר הערכים הכולל אי־זוגי, החציון הוא הערך האמצעי, למשל "4". כשמספר הערכים זוגי, החציון הוא הממוצע של שני הערכים האמצעיים, למשל "2.5" או "-0.5". כתבו מספר שלם ללא נקודה עשרונית, ואת האפס כ־"0", לעולם לא כ־"-0". שאפו לזמן ריצה של O(log(min(m, n))).

פונקציה

findMedianSortedArrays(nums1: integer-array, nums2: integer-array) → string
nums1integer-array
הרשימה הראשונה, ממוינת מהקטן לגדול
nums2integer-array
הרשימה השנייה, ממוינת מהקטן לגדול
מחזירהstring
החציון של כל הערכים, כטקסט כגון "4" או "-2.5"

אילוצים

  • 1 ≤ nums1.length, nums2.length ≤ 3000
  • -106 ≤ nums1[i], nums2[i] ≤ 106
  • שתי הרשימות ממוינות בסדר לא יורד, וערכים עשויים לחזור על עצמם.

דוגמאות

קלט
nums1 = [1, 4]nums2 = [2, 7, 9]
פלט
"4"
הסבר
יחד הערכים הם 1, 2, 4, 7, 9. כשיש חמישה ערכים, יש ערך אמצעי אחד, השלישי, והוא 4.
challenge icon

שאלת המשך

האם אפשר להשתמש באותה נקודת חיתוך כדי למצוא את הערך ה־k הקטן ביותר בשתי הרשימות, עבור כל k, בזמן לוגריתמי?

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

בדיקה #1

בדיקה #2

בדיקה #3

ארגומנטים

nums1 = [1, 4]
nums2 = [2, 7, 9]

הפלט הצפוי

"4"