Here, We see Median of Two Sorted Arrays problem Solution. This Leetcode problem is done in many programming languages like C++, Java, JavaScript, Python, etc., with different approaches.

Median of Two Sorted Arrays LeetCode Solution
Problem Statement ->
Given two sorted arrays nums1 and nums2 of size m and n respectively, return the median of the two sorted arrays.
The overall run time complexity should be O(log (m+n)).
Example 1: Input: nums1 = [1,3], nums2 = [2] Output: 2.00000 Explanation: merged array = [1,2,3] and median is 2. Example 2: Input: nums1 = [1,2], nums2 = [3,4] Output: 2.50000 Explanation: merged array = [1,2,3,4] and median is (2 + 3) / 2 = 2.5.
Median of Two Sorted Arrays Leetcode Solution C++ ->
class Solution {
public:
double mediann(vector<int>&a,vector<int>&b){
int m=a.size();
int n=b.size();
if(m>n)
return mediann(b,a);
int l=0,r=m;
while(l<=r){
int partx=l+(r-l)/2;
int party=(m+n+1)/2-partx;
int maxlx=(partx==0)?INT_MIN:a[partx-1];
int minrx=(partx==m)?INT_MAX:a[partx];
int maxly=(party==0)?INT_MIN:b[party-1];
int minry=(party==n)?INT_MAX:b[party];
if(maxlx<=minry&&maxly<=minrx){
if((m+n)%2==0)
return (double)(max(maxlx,maxly)+min(minrx,minry))/2;
else
return (double)(max(maxlx,maxly));
}else if(maxlx>minry)
r=partx-1;
else
l=partx+1;
}
return -1.0;
}
double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) {
double ans;
ans=mediann(nums1,nums2);
return ans;
}
};
Code language: C++ (cpp)
Median of Two Sorted Arrays Leetcode Solution Java ->
class Solution {
public double findMedianSortedArrays(int[] nums1, int[] nums2) {
int index1 = 0;
int index2 = 0;
int med1 = 0;
int med2 = 0;
for (int i=0; i<=(nums1.length+nums2.length)/2; i++) {
med1 = med2;
if (index1 == nums1.length) {
med2 = nums2[index2];
index2++;
} else if (index2 == nums2.length) {
med2 = nums1[index1];
index1++;
} else if (nums1[index1] < nums2[index2] ) {
med2 = nums1[index1];
index1++;
} else {
med2 = nums2[index2];
index2++;
}
}
// the median is the average of two numbers
if ((nums1.length+nums2.length)%2 == 0) {
return (float)(med1+med2)/2;
}
return med2;
}
}
Code language: Java (java)
Median of Two Sorted Arrays Leetcode Solution JavaScript ->
var findMedianSortedArrays = function(nums1, nums2) {
if(nums1.length > nums2.length) return findMedianSortedArrays(nums2, nums1)
let x = nums1.length
let y = nums2.length
let low = 0, high = x
while(low <= high) {
const partitionX = (high + low) >> 1
const partitionY = ((x + y + 1) >> 1) - partitionX
const maxX = partitionX == 0 ? Number.NEGATIVE_INFINITY : nums1[partitionX - 1]
const maxY = partitionY == 0 ? Number.NEGATIVE_INFINITY : nums2[partitionY - 1]
const minX = partitionX == nums1.length ? Number.POSITIVE_INFINITY : nums1[partitionX]
const minY = partitionY == nums2.length ? Number.POSITIVE_INFINITY : nums2[partitionY ]
if(maxX <= minY && maxY <= minX) {
const lowMax = Math.max(maxX, maxY)
if( (x + y) % 2 == 1)
return lowMax
return (lowMax + Math.min(minX, minY)) / 2
} else if(maxX < minY) {
low = partitionX + 1
} else
high = partitionX - 1
}
};
Code language: JavaScript (javascript)
Median of Two Sorted Arrays Leetcode Solution Python ->
class Solution:
def findMedianSortedArrays(self, nums1: List[int], nums2: List[int]) -> float:
m, n = len(nums1), len(nums2)
mid = (m + n) // 2 + 1
prev2 = prev1 = None
i = j = 0
for _ in range(mid):
prev2 = prev1
if j == n or (i != m and nums1[i] <= nums2[j]):
prev1 = nums1[i]
i += 1
else:
prev1 = nums2[j]
j += 1
return prev1 if (m + n) % 2 else (prev1 + prev2) / 2
Code language: Python (python)