## DEV Community is a community of 605,533 amazing developers

We're a place where coders share, stay up-to-date and grow their careers.

# Question

Given two sorted arrays nums1 and nums2 of size m and n respectively, return the median of the two sorted arrays.

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

Example 3:

``````Input: nums1 = [0,0], nums2 = [0,0]
Output: 0.00000
``````

Example 4:

``````Input: nums1 = [], nums2 = [1]
Output: 1.00000
``````

Example 5:

``````Input: nums1 = [2], nums2 = []
Output: 2.00000
``````

Constraints:

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

## Let's Go!

Solve by using PREP.

• P - Two parameters. Both are an array of integers (nums1 & nums2).
• R - A number which represents the median of the combined arrays.
• E - Examples provided by question. (See Above)
• P - See Below
``````var findMedianSortedArrays = function(nums1, nums2) {
// Use Reduce method to combines nums1 & nums2 to single array named data

// Sort array from smallest to largest number

// Return the below
// Conditional if even or odd length data
// If odd grab middle idx of data
// Else even grab middle 2 numbers and divide by 2
};

``````

Translate into code...

``````var findMedianSortedArrays = function(nums1, nums2) {
// Use Reduce method to combines nums1 & nums2 to single array named data
let data = nums1.reduce((result, num) => {
result.push(num)
return nums2
}, nums2)

// Sort array from smallest to largest number
data.sort((a,b) => a - b)

// Return the below
// Conditional if even or odd length data
// If odd grab middle idx of data
// Else even grab middle 2 numbers and divide by 2
if (data.length % 2 === 0) {
return (data[data.length/2 - 1] + data[data.length/2]) / 2
} else {
return data[data.length / 2 - .5]
}
};

``````

### Conclusion

& Remember... Happy coding, friends! =)

## Discussion (1)

ljc-dev

Intersting challenge and nice explanation buddy π.