From 4a35530bc82c8dd177797bc0711eeafc01d35cad Mon Sep 17 00:00:00 2001 From: Abhiranjan Kumar <2400030581@kluniversity.in> Date: Thu, 30 Oct 2025 21:33:02 +0530 Subject: [PATCH] Implement function to find median of two sorted arrays --- Median_of_Two_Sorted_Arrays.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 Median_of_Two_Sorted_Arrays.py diff --git a/Median_of_Two_Sorted_Arrays.py b/Median_of_Two_Sorted_Arrays.py new file mode 100644 index 0000000..2f2feec --- /dev/null +++ b/Median_of_Two_Sorted_Arrays.py @@ -0,0 +1,27 @@ +class Solution: + def findMedianSortedArrays(self, nums1, nums2): + if len(nums1) > len(nums2): + nums1, nums2 = nums2, nums1 + + m, n = len(nums1), len(nums2) + total = m + n + half = total // 2 + + left, right = 0, m + while left <= right: + i = (left + right) // 2 + j = half - i + nums1_left = nums1[i - 1] if i > 0 else float('-inf') + nums1_right = nums1[i] if i < m else float('inf') + nums2_left = nums2[j - 1] if j > 0 else float('-inf') + nums2_right = nums2[j] if j < n else float('inf') + + if nums1_left <= nums2_right and nums2_left <= nums1_right: + if total % 2: + return min(nums1_right, nums2_right) + return (max(nums1_left, nums2_left) + min(nums1_right, nums2_right)) / 2 + + elif nums1_left > nums2_right: + right = i - 1 + else: + left = i + 1