# Find Median Of Two Sorted Arrays – LeetCode Solutions

LeetCode has a hard coding Problem in Its’ Algorithm Section: “Find Median Of Two Sorted Arrays”. Today We are going to solve this problem. LeetCode Link of the Problem is HERE

#### Question

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 =  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.

#### Conditions

• nums1.length == m
• nums2.length == n
• 0 <= m <= 1000
• 0 <= n <= 1000
• 1 <= m + n <= 2000
• -106 <= nums1[i], nums2[i] <= 106

#### Solution to “Find Median Of Two Sorted Arrays“

The Skeleton Code Given by LeetCode:

``````class Solution(object):
def findMedianSortedArrays(self, nums1, nums2):
"""
:type nums1: List[int]
:type nums2: List[int]
:rtype: float
"""``````

Firstly, I created a variable named sort, Where I stored both the Input lists merged together and Sorted them.

``````class Solution(object):
def findMedianSortedArrays(self, nums1, nums2):
"""
:type nums1: List[int]
:type nums2: List[int]
:rtype: float
"""
sort = sorted(nums1 + nums2)``````

Secondly, Check the length of the new list after both the lists are merged. If the length of the new list is odd then the middle element is median.

``````class Solution(object):
def findMedianSortedArrays(self, nums1, nums2):
"""
:type nums1: List[int]
:type nums2: List[int]
:rtype: float
"""
sort = sorted(nums1 + nums2)
if len(sort)%2 == 1:
return sort[(len(sort)/2)]``````

Finally, Checked for even length. If the length is even take the average of both middle elements.

Complete Solution:

``````class Solution(object):
def findMedianSortedArrays(self, nums1, nums2):
"""
:type nums1: List[int]
:type nums2: List[int]
:rtype: float
"""
sort = sorted(nums1 + nums2)
if len(sort)%2 == 1:
return sort[(len(sort)/2)]
else:
return (sort[(len(sort)/2)] + sort[(len(sort)/2) - 1] )/2.0``````

Python-related posts Visit HERE

C++ related posts Visit HERE

Databases related posts Visit HERE

Data Structures related posts visit HERE

Algorithms related posts visit HERE

Data Science related posts visit HERE

Share the Knowledge